当前位置: 首页 > wzjs >正文

横向网站可以访问的国外网站

横向网站,可以访问的国外网站,智慧团建管理系统,jsp网站维护三类定时任务 task schedule 要做的三件事情 添加定时任务删除定时任务获取所有定时任务的状态 什么类型的任务适合使用 task.schedule 模块 周期性任务:如每天、每小时、每周执行的任务,适合使用 taskschedule 模块 每天看签到任务是否完成, 未完成则给…

三类定时任务

  • task schedule 要做的三件事情
    • 添加定时任务
    • 删除定时任务
    • 获取所有定时任务的状态
  • 什么类型的任务适合使用 task.schedule 模块
    • 周期性任务:如每天、每小时、每周执行的任务,适合使用 taskschedule 模块
      • 每天看签到任务是否完成, 未完成则给用户添加 task queue 的消息
      • 这是周期性任务 和 task queue 配合的示例
    • 简单任务:像系统状态或接口状态的检查,可通过发起请求判断,将响应数据存储到数据库方便后续读取
    • 轻量级任务:任务不常执行且任务量不大的情况,适合使用 task schedule (非高并发任务)
  • task schedule 不适合做什么
    • 给用户发送指定日期某一分,某一秒的消息
  • 如果是大量高并发的任务,使用 task queue
    • task queue 可以实现给用户发送指定日期某一分,某一秒的消息
    • task queue 在 nestjs 中有一个 nestjs bull + redis 的方案
    • task queue 其他方案: RabbitMQ,MessageMQ, Kafka 方案

合理规划 tasks 定时任务

  • common
    • cron
      • tasks
        • log-db-cron.service.ts
        • index.ts
      • tasks.module.ts
      • tasks.service.ts

1 ) cron/tasks/log-db-cron.service.ts

import { Injectable } from '@nestis/common';
import { Cron } from '@nestjs/schedule';
import { SshService } from '@/utils/ssh/ssh.service';@Injectable();
export class LogDbCronService {constructor(private sshService: sshService) {}@Cron('0 * 0 * *', {name: 'logdb-cron'})handleCron(){//备份:连接到MongoDB并导出对应的db中的collections的数据//滚动记录:删除已有的collections的数据//1.删除当前collections中的已备份数据//2.之前备份的collections->对比collection备份的时间,如果超过t天/hours的规则,则删除const containerName = 'mongo-mongo-1';const uri='mongodb: //root: example@localhost: 27017/nest-logs';const now = new Date();const collectionName = 'log';const outputPath =`/tmp/logs-${now.getTime()}`;const hostBackupPath = '/srv/logs';const cmd =`docker exec -i ${containerName} mongodump --uri=${uri} --collection=${collectionName} --out=${outputPath}`;const cpCmd =`docker cp ${containerName}:${outputPath} ${hostBackupPath}`;await this.sshService.exec(`${cmd} && ${cpCmd}`)await this.sshService.exec(`ls-la ${hostBackupPath}`);const delCmd = `find ${hostBackupPath} -type d -mtime +30 -exec rm-rf {}\\;`;await this.sshService.exec(delCmd)const res = await this.sshService.exec(`ls-la ${hostBackupPath}`);console.log('~ TasksService ~ handleCron ~ res:', res);}
}

2 ) cron/tasks/index.ts

import { Provider } from '@nestjs/common';
import { LogDbCronService } from './tasks/log-db-cron.service';export const CronProviders: Provider[] = [LogDbCronService];

3 ) tasks.module.ts

$ nest g mo common/cron/tasks --no-spec --flat -d
生成 nest g mo common/cron/tasks.module.ts

import { Module } from '@nestjs/common';
import { TasksService } from './tasks.service';
import { ScheduleModule } from '@nestjs/schedule';
import { CronProviders } from './tasks/index';@Module({imports: [ScheduleModule.forRoot()],providers: [TasksService, ...CronProviders],exports: [TasksService],
})export class TasksModule {}

4 ) task.service.ts

import { Injectable, Logger } from '@nestjs/common';
import { SchedulerRegistry } from '@nestjs/schedule';
import { CronJob } from 'cron';@Injectable()
export class TasksService {logger = new Logger('TasksService');constructor(private schedulerRegistry: SchedulerRegistry){}//添加定时任务addCronJob(name: string, cronTime: string, cb:()=> void): void {const job = new CronJob(cronTime, cb);this.schedulerRegistry.addCronJob(name, job);job.start();this.logger.log(`Job ${name} added and started`);}// 删除定时任务deleteCronJob(name: string): void {this.schedulerRegistry.deleteCronJob(name);this.logger.warn(`Job ${name} deleted`);}// 获取所有的定时任务的状态getCrons() {const jobs = this.schedulerRegistry.getCronJobs();jobs.forEach((value, key) => {let next;try {next = value.nextDate().toJSDate();} catch(e) {next = 'error: next fire date is in the past!';}this.logger.log(`job: ${key} -> next: ${next}`); // key 是 id, next 下一次执行任务的时间});}
}

这是控制定时任务的 添加,删除,获取所有的定时任务

  • 更多参考官网
    • task-scheduling

5 ) 使用

  • 在某个模块,比如 auth.mdoule.ts 导入 TasksModule

    import { Module } from '@nestjs/common';
    import { TasksModule } from '@/common/cron/tasks.module';@Module({imports: [TasksModule,]
    })export class AuthModule {}
    
  • 之后再 auth.controller.ts 导入

    import { Module, Get } from '@nestjs/common';
    import { TasksService } from '../../common/cron/tasks.service';@Controller('auth');
    export class AuthController {constructor(private tasksService: TasksService) {}@Get('add-job')getAddJob() {// 每分钟执行一次 写死的任务名称this.tasksService.addCronJob('test', '*****', () => {console.log('hello schedule job');});return 'created';}@Get('delete-job')deleteJob() {this.tasksService.deleteCronJob('test'); // 写死的任务名称return 'deleted';}@Get('get-jobs')getJobs() {this.tasksService.getCrons();return 'get jobs';}
    }
    
  • 以上都是简单的测试,调用对应的 api 即可测试


文章转载自:

http://WfuBKm6k.Lyrgp.cn
http://Aa6uigMY.Lyrgp.cn
http://v3s6rLmo.Lyrgp.cn
http://s1SqGDY0.Lyrgp.cn
http://KDuO8niz.Lyrgp.cn
http://FhPSC5vr.Lyrgp.cn
http://IH3asViE.Lyrgp.cn
http://bKYAtIGP.Lyrgp.cn
http://KG1HPe8t.Lyrgp.cn
http://Rd3IuGFA.Lyrgp.cn
http://7MoBhd36.Lyrgp.cn
http://cmxfTW5D.Lyrgp.cn
http://F2l1Sjiy.Lyrgp.cn
http://cyMApjwk.Lyrgp.cn
http://hfeR6UB3.Lyrgp.cn
http://AoJiGG0g.Lyrgp.cn
http://WEikBigH.Lyrgp.cn
http://lgpsHCva.Lyrgp.cn
http://hnAURXcb.Lyrgp.cn
http://zJGCMtKT.Lyrgp.cn
http://8tI9Z0IO.Lyrgp.cn
http://FgGkMSAy.Lyrgp.cn
http://oSybC2Q9.Lyrgp.cn
http://1a80exQp.Lyrgp.cn
http://JBc8KycM.Lyrgp.cn
http://osTBaOD0.Lyrgp.cn
http://HTyHmEJC.Lyrgp.cn
http://pHDFotO4.Lyrgp.cn
http://4hM9Ngwk.Lyrgp.cn
http://wACOdGXX.Lyrgp.cn
http://www.dtcms.com/wzjs/747804.html

相关文章:

  • 软装设计网站有哪些lnmp wordpress 500
  • 搜索引擎和门户网站的区别深圳华大基因公司简介
  • 北京门户网站设计招聘门户网站是什么意思
  • 做文字logo的网站网站教程
  • 网商网站怎么做怎么找到要做网站推广的客户资源
  • 如何搭建网站平台网站建设方案新闻
  • 网站懒加载怎么做社交网站开发流程
  • 温州网站建设技术托管常用的网络推广的方法有哪些
  • 网站如何做搜索引擎免费商标图案logo
  • 什么网站做专利检索报告wordpress评论按钮插件
  • 广州网站快速优化排名展览公司设计费
  • 北京建设建网站与动漫有关的专业
  • 组织网站设计公司甘露园网站建设
  • 学生网站建设总结报告表白视频制作网站
  • 吉他网站怎么做福州网页定制
  • 开发网页系统一般多少钱seo学徒培训
  • 网站后台怎么做飘窗合肥做网站设计
  • 网站弹窗是怎么做的网站建设 佛山
  • 天猫折扣店网站建设个人网站建设咨询电话
  • 漂亮网站设计适合广告公司的名字
  • 网站推广设计制作网站外包多少人做
  • 广州建立网站的公司网站cms搭建网站
  • 营销型网站建设域名京东网站建设的基本情况
  • 微网站建设开发工具专业网页设计
  • 个人网站建设方案书使用几号纸搜狐自助建站哪个平台好用
  • 国家住房和城乡建设厅网站网站下载织梦模板
  • 上海做网站的小公司公司网站后台更新
  • 做网站推销好做吗进入建设银行的网站就打不了字
  • 电子商务网站建设与管理论文云虚拟主机建设网站一定要域名
  • 淘宝网站建设协议广州网站建设有哪些公司