亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Linux上的某個日期和某個時間的某個特定日期運行Node js文件?

如何在Linux上的某個日期和某個時間的某個特定日期運行Node js文件?

開心每一天1111 2021-05-14 18:18:08
我要去一個周末,我需要一個node.js文件才能在特定的時間和日期運行。我還沒有找到通過javascript做到這一點的任何方法,但是顯然cron可以運行(我正在運行linux)。我創建了一個sh文件,該文件運行nod.js文件,并使其通過cron運行,但根本沒有運行。我不知道這是否與Puppeteer + Node.js有關系,但是沒有腳本運行過...我也嘗試使用了at命令,但是那也不起作用對于cron,我添加了以下行:20 14 2 5 * ~/.../start.shsh文件是:#!/bin/bashcd Documents/node_bot/node fog1.js
查看完整描述

2 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

如果希望節點應用程序在特定時間運行特定代碼段,則可以運行一個setTimeout()遞歸“循環”,該循環每隔幾毫秒檢查一次時間。如果未經過特定時間,則setTimeout()回調將自行調用,然后過程將重新開始。但是,如果時間已過去,請執行特定的代碼塊并停止遞歸循環。


const triggerTime = new Date(2019, 05, 05, 02, 30, 0, 0)


function otherCodeToRun() {

  // do something...

}


function wait() {

  setTimeout(function() {

    const currentTime = new Date()


    if (currentTime >= triggerTime) {

      otherCodeToRun() // not calling wait ends the recursive loop

    } else {

      wait() // recursively call wait after the timeout completes

    }

  }, 1000) // wait 1 second

}

從理論上講,該otherCodeToRun()函數可以調用另一個節點進程來運行您的其他文件,或者可以將您的其他文件作為模塊加載并以這種方式運行。


另外值得注意的是,您可以在while循環內執行此檢查,但是,應用程序將完全阻塞,這意味著它將顯得無響應,并可能占用大量CPU周期。setTimeout方法使您的應用程序有機會屈服于其他進程,從而使您可以將輸出記錄到控制臺,例如,如果要顯示倒計時。


查看完整回答
反對 回復 2021-05-20
?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

它可能看起來應該更像這樣(絕對路徑,以防萬一):

20 14 2 5 * cd / path / to / Documents / node_bot && / path / to / node fog1.js

它于5月2日14:20運行



查看完整回答
反對 回復 2021-05-20
  • 2 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號