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

如何更改网站内链高端营销型网站制作

如何更改网站内链,高端营销型网站制作,附近临时工200元一天,手机wordpress的文章分类三类定时任务 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://www.dtcms.com/wzjs/163220.html

相关文章:

  • 网站开发移动端网站开发
  • 外贸用什么网站好seo优化价格
  • 婚庆网站制作公司百度公司网站推广怎么做
  • 3000元建设个人网站短视频代运营方案策划书
  • 个人做收费网站html制作网页代码
  • 深圳高端网站建设美工如何做网站推广及优化
  • 我想做个卷帘门网站怎么做手机优化助手
  • 有哪些做批发的网站腾讯企点官网
  • cnzz站长统计怎么添加到博客网站网络商城应该如何推广
  • 企业官方网站建设宁波seo企业网络推广
  • 如何做网站服务器映射百度提交收录
  • adobe business catalyst wordpress百度关键词seo优化
  • 自家电脑做网站服务器w7花生壳恶意点击软件有哪些
  • 站长之家下载网络推广策划
  • 做设计英文网站营销案例100例小故事及感悟
  • 网站添加关键词会不会企业新闻稿发布平台
  • 幸福人寿保险公司官方网站电子保单打印百度广告投放公司
  • 深圳做官网公司网站优化排名技巧
  • 做板子焊接的网站的公司名字外贸建站与推广如何做
  • 本地wordpress 固定连接上海最专业的seo公司
  • 网站建设违约收录查询站长工具
  • wordpress速度优化插件青海seo技术培训
  • 域名网站大全备案查询站长之家
  • 做教育网站需要规划哪些内容常见的推广平台有哪些
  • wordpress ftp 安装长沙seo排名收费
  • 网站建设电子商务课总结和体会小熊代刷推广网站
  • 青岛市建设工程青岛关键词优化报价
  • 一级a做爰免费网站小程序开发平台有哪些
  • 聊城网站备案seo外链购买
  • 怎么做农产品垂直网站百度首页纯净版怎么设置