在迪诺设置cron作业

2020年12月30日11:20:13 发表评论 30 次浏览

本文概述

自动化可以通过改进和简化流程和重复性任务来节省时间。在类似Unix的系统中, 你可以使用cron作业自动执行任务。

什么是Cron工作?

cron作业是系统进程(cron)的unix术语, 它使你可以安排任务在指定的特权下在以后运行。本质上, 它是一个调度程序, 使应用程序可以调度作业以在特定日期或时间自动运行。在本文中, 我们将把cron作业集成到天野应用。

先决条件

  • 对JavaScript的理解
  • 文本编辑器(在本例中, 我们将使用VS代码)
  • 邮差安装在本地计算机上

安装Deno

如果你尚未在本地计算机上安装Deno, 则可以使用家酿:

brew install deno

安装完成后, 运行地在你的终端上确认安装成功。

Deno有一个我们将要使用的智能作业计划程序库。我们将从在主目录中为应用程序创建目录开始:

cd desktop && mkdir denocron && cd denocron
touch index.ts

要在我们的应用程序中实现cron作业, 我们必须将模块导入到我们的应用程序中:

import {cron, daily, monthly, weekly} from 'https://deno.land/x/deno_cron/cron.ts';

除了为任务运行定义自定义时间之外, Deno cron还提供了一些创建每周, 每月和每日计划的方法。

在Deno中定义自定义时间表

我们可以使用此模块为任务创建自定义时间, 方法是使用克朗方法。此方法使用cron模式调度任务, 该模式的格式如下:

cron('* * * * * *', () => {
    // run some task
});

让我解释一下这里发生了什么。

  • 第一个星号占用秒数。取值范围为0-59
  • 第二个星号使用分钟数, 并且取值范围为0-59
  • 第三个星号使用小时数, 其值介于0-23之间
  • 第四个星号为月份中的一天, 其值在0-31之间
  • 第五个星号为一年中的月份, 其值在0-31之间
  • 第六个星号是星期几, 取值范围是0-7

我们可以编写一个将每秒运行的简单作业:

我们为制作了一个自定义演示.
不完全是。点击这里查看.

在迪诺设置cron作业1
cron('*/1 * * * * *', () => {
    // run some task
    console.log('This is a same thing')
});

要运行我们的应用程序, 请打开终端并运行deno run index.ts.

使用Denon运行我们的应用程序

就像Node.js具有Nodemon, Deno也有天龙进行更改时重新加载我们的应用程序的软件包。

要安装此程序, 请打开你的终端并运行以下命令:

deno install -qAf --unstable https://deno.land/x/denon@2.4.4/denon.ts

此命令将安装天龙在我们的开发机器上进行全球打包。

现在我们可以运行应用程序了, 我们可以使用以下命令:天龙指数。如果你使用的是MacBook, 则可能会遇到错误提示找不到命令:denon, 就像这样:

找不到显示命令的错误

如果遇到此错误, 可以执行下列操作之一:

如果你使用的是sh终端, 你可以通过运行以下命令进行配置:

export PATH="/Users/<user>/.deno/bin:$PATH"

哪里<用户>directory是你在本地计算机上的帐户名称。

如果使用的是bash终端, 则可以使用以下命令对其进行配置:

echo 'export PATH="$HOME/.deno/bin:$PATH"' >> ~/.bashrc

Cron作业的用例:自动电子邮件

Cron作业的常见用例是创建电子邮件和新闻通讯的自动发送。我们可以编写一个简单的函数, 该函数能够在每月的第一天的午夜执行一次函数。我们将使用克朗方法:

cron('1 0 0 1 */1 *', () => {
    // run a function
});

此方法采用时间表配置, 以及要在时间表到期时调用的方法。

我们可以编写一个简单的cron作业, 该作业每30秒运行一次:

let task = cron('*/30 * * * * *', () => {
    // run some task
    console.log('This is a same thing')
});

这是一个简单的工作, 每30分钟运行一次:

cron('1 */30 * * * *', () => {
    checkStock();
});

除了定义自定义作业, Deno cron还带有其自己的内置方法。例如, 我们有每日, 每周和每月的方法, 它们将在指定的时间运行:

daily(() => {
    console.log('I run on daily basis')
});

weekly(() => {
console.log('This method will run on weekly bases')
});

everyMinute(()=> {
  console.log('This method will run on 60 seconds')  
})

要使用此方法, 我们必须首先将其导入:

import { cron, everyMinute, daily, weekly } from 'https://deno.land/x/deno_cron/cron.ts';

要停止所有cron作业, 我们可以使用停()方法。要启动所有cron作业, 请使用开始()方法。

要了解其工作原理, 请设置一些布尔值。首先, 导入此方法:

import { cron, start, stop } from 'https://deno.land/x/deno_cron/cron.ts';
let task = cron('*/1 * * * * *', () => {
    // run some task
    console.log('This is the same thing')
});
let someBool = false
if (someBool) {
    start()
} else {
    stop()
}

我们首先导入克朗, 开始和停网址中的方法, 然后使用cron方法创建将每分钟运行的作业。

要运行该应用程序, 请设置someBooltotrue。完成后, 作业将记录这是同一回事每一分钟在控制台上。另请注意, 开始和停方法用于控制工作流程。

“这是同一件事”自动记录

总结

在构建大型应用程序时, 你希望将计划的新闻稿发送给所有客户, 自动化任何消息或完成自动化任务, Cron作业会派上用场。

这是该项目的源代码.

日志火箭:全面了解你的网络应用

LogRocket仪表板免费试用横幅

日志火箭是一个前端应用程序监视解决方案, 可让你重播问题, 就好像问题发生在你自己的浏览器中一样。 notlogy无需猜测错误发生的原因, 也不要求用户提供屏幕截图和日志转储, 而是让你重播会话以快速了解出了什么问题。无论框架如何, 它都能与任何应用完美配合, 并具有用于记录来自Redux, Vuex和@ ngrx / store的其他上下文的插件。

除了记录Redux动作和状态外, notlogy还会记录控制台日志, JavaScript错误, 堆栈跟踪, 带有标题+正文, 浏览器元数据和自定义日志的网络请求/响应。它还使用DOM来记录页面上的HTML和CSS, 甚至可以为最复杂的单页面应用程序重新创建像素完美的视频。

免费试用

.

一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: