在NodeJs中如何实现定时任务(详细教程)
本篇文章主要介绍了NodeJs实现定时任务的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
在项目中有个每天0点执行的函数,本来想用setInterval来实现,但觉得这种需求以后应该还会有,自己写可能拓展性不高。
搜了一下发现了node-schedule这个包。
现在记录一下使用方法
node-schedule没次都是通过新建一个scheduleJob对象来执行具体方法。
时间数值按下表表示
* * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ | │ │ │ │ │ └ [dayOfWeek]day of week (0 - 7) (0 or 7 is Sun) │ │ │ │ └───── [month]month (1 - 12) │ │ │ └────────── [date]day of month (1 - 31) │ │ └─────────────── [hour]hour (0 - 23) │ └──────────────────── [minute]minute (0 - 59) └───────────────────────── [second]second (0 - 59, OPTIONAL)
使用node-schedule在指定时间执行方法
var schedule = require('node-schedule'); var date = new Date(2017, 11, 16, 16, 43, 0); var j = schedule.scheduleJob(date, function(){ console.log('现在时间:',new Date()); });
在2017年12月16日16点43分0秒,打印当时时间
指定时间间隔执行方法
var rule = new schedule.RecurrenceRule(); rule.second = 10; var j = schedule.scheduleJob(rule, function(){ console.log('现在时间:',new Date()); });
这是每当秒数为10时打印时间。如果想每隔10秒执行,设置 rule.second =[0,10,20,30,40,50]即可。
rule支持设置的值有second,minute,hour,date,dayOfWeek,month,year
同理:
每秒执行就是rule.second =[0,1,2,3......59]
每分钟0秒执行就是rule.second =0
每小时30分执行就是rule.minute =30;rule.second =0;
每天0点执行就是rule.hour =0;rule.minute =0;rule.second =0;
....
每月1号的10点就是rule.date =1;rule.hour =10;rule.minute =0;rule.second =0;
每周1,3,5的0点和12点就是rule.dayOfWeek =[1,3,5];rule.hour =[0,12];rule.minute =0;rule.second =0;
....
示例
1:确定时间
例如:2014年2月14日,15:40执行
var schedule = require("node-schedule"); var date = new Date(2014,2,14,15,40,0); var j = schedule.scheduleJob(date, function(){ console.log("执行任务"); });
取消任务
j.cancel();
2:每小时的固定时间
例如:每小时的40分钟执行
var rule = new schedule.RecurrenceRule(); rule.minute = 40; var j = schedule.scheduleJob(rule, function(){ console.log("执行任务"); });
3:一个星期中的某些天的某个时刻执行,
例如:周一到周日的20点执行
var rule = new schedule.RecurrenceRule(); rule.dayOfWeek = [0, new schedule.Range(1, 6)]; rule.hour = 20; rule.minute = 0; var j = schedule.scheduleJob(rule, function(){ console.log("执行任务"); });
4:每秒执行
var rule = new schedule.RecurrenceRule(); var times = []; for(var i=1; i<60; i++){ times.push(i); } rule.second = times; var c=0; var j = schedule.scheduleJob(rule, function(){ c++; console.log(c); });
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
Atas ialah kandungan terperinci 在NodeJs中如何实现定时任务(详细教程). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ringkasan beberapa sebab mengapa tugas berjadual crontab tidak dilaksanakan Masa kemas kini: 9 Januari 2019 09:34:57 Penulis: Harapan di medan ini terutamanya meringkaskan dan memperkenalkan kepada anda beberapa sebab mengapa tugas berjadual crontab tidak dilaksanakan setiap orang Penyelesaian diberikan untuk setiap pencetus yang mungkin, yang mempunyai rujukan dan nilai pembelajaran tertentu untuk rakan sekerja yang menghadapi masalah ini. Pelajar yang memerlukan boleh mengikuti editor untuk belajar bersama-sama: Saya telah menghadapi beberapa masalah di tempat kerja yang dijadualkan tugas tidak dilaksanakan Kemudian, apabila saya mencari di Internet, saya mendapati bahawa Internet terutamanya menyebut lima insentif ini: 1. Perkhidmatan crontab bukan fungsi kernel Linux, tetapi bergantung pada cron.

Bagaimana untuk mengendalikan muat naik fail? Artikel berikut akan memperkenalkan kepada anda cara menggunakan ekspres untuk mengendalikan muat naik fail dalam projek nod saya harap ia akan membantu anda!

Penjadualan tugas berjadual ThinkPHP6: pelaksanaan tugas berjadual 1. Pengenalan Dalam proses pembangunan aplikasi web, kita sering menghadapi situasi di mana tugas berulang tertentu perlu dilaksanakan dengan kerap. ThinkPHP6 menyediakan fungsi penjadualan tugas berjadual yang berkuasa, yang boleh memenuhi keperluan tugas berjadual dengan mudah. Artikel ini akan memperkenalkan cara menggunakan penjadualan tugas berjadual dalam ThinkPHP6 dan menyediakan beberapa contoh kod untuk membantu memahami. 2. Konfigurasikan tugas berjadual, buat fail tugas berjadual dan buat koman dalam direktori aplikasi projek.

Python melaksanakan penyegaran halaman automatik dan analisis fungsi tugas berjadual untuk aplikasi pengumpulan pelayar tanpa kepala Dengan perkembangan pesat rangkaian dan pempopularan aplikasi, pengumpulan data halaman web menjadi semakin penting. Pelayar tanpa kepala adalah salah satu alat yang berkesan untuk mengumpul data halaman web. Artikel ini akan memperkenalkan cara menggunakan Python untuk melaksanakan penyegaran halaman automatik dan fungsi tugas berjadual pelayar tanpa kepala. Pelayar tanpa kepala menggunakan mod operasi penyemak imbas tanpa antara muka grafik, yang boleh mensimulasikan tingkah laku operasi manusia secara automatik, dengan itu membolehkan pengguna mengakses halaman web, mengklik butang dan mengisi maklumat.

Artikel ini akan berkongsi dengan anda alat pengurusan proses Node "pm2", dan bercakap tentang mengapa pm2 diperlukan, cara memasang dan menggunakan pm2, saya harap ia akan membantu semua orang!

Penjelasan dan Panduan Pemasangan Terperinci untuk Pinetwork Nodes Artikel ini akan memperkenalkan ekosistem pinetwork secara terperinci - nod pi, peranan utama dalam ekosistem pinetwork, dan menyediakan langkah -langkah lengkap untuk pemasangan dan konfigurasi. Selepas pelancaran Rangkaian Ujian Blockchain Pinetwork, nod PI telah menjadi bahagian penting dari banyak perintis yang aktif mengambil bahagian dalam ujian, bersiap sedia untuk pelepasan rangkaian utama yang akan datang. Jika anda tidak tahu kerja pinet, sila rujuk apa itu picoin? Berapakah harga untuk penyenaraian? Penggunaan PI, perlombongan dan analisis keselamatan. Apa itu Pinetwork? Projek Pinetwork bermula pada tahun 2019 dan memiliki syiling pi cryptocurrency eksklusifnya. Projek ini bertujuan untuk mewujudkan satu yang semua orang boleh mengambil bahagian

Cara menggunakan PHP untuk membangunkan fungsi penyegaran berjadual untuk halaman web Dengan perkembangan Internet, semakin banyak laman web perlu mengemas kini data paparan dalam masa nyata. Muat semula halaman dalam masa nyata adalah keperluan biasa, yang membolehkan pengguna mendapatkan data terkini tanpa memuat semula keseluruhan halaman. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan fungsi muat semula berjadual untuk halaman web dan menyediakan contoh kod. Cara paling mudah untuk melaksanakan muat semula berjadual menggunakan teg Meta ialah menggunakan teg Meta HTML untuk menyegarkan halaman dengan kerap. Dalam HTML<head>

Cara menggunakan tugas berjadual dalam FastAPI untuk melaksanakan kerja latar belakang Dengan perkembangan pesat aplikasi Internet, banyak aplikasi mempunyai beberapa tugas latar belakang yang perlu dilaksanakan dengan kerap, seperti pembersihan data, penghantaran e-mel, sandaran, dsb. Untuk menyelesaikan masalah ini, kami boleh menggunakan tugas berjadual untuk melaksanakan kerja latar belakang secara automatik. Dalam artikel ini, kami akan memperkenalkan cara menggunakan tugas berjadual dalam rangka kerja FastAPI untuk melaksanakan kerja latar belakang. FastAPI ialah rangka kerja web moden, pantas (berprestasi tinggi) yang digunakan terutamanya untuk membina API. ia mempunyai
