簡體   English   中英

通過 cron 作業運行 ts-node

[英]Run ts-node via cron job

我使用用 TypeScript 編寫的腳本來重新確定我的應用程序中的項目狀態。 我通常運行這一行:

npx ts-node statuscheck.ts

我希望它每天午夜運行,為此我嘗試安排一個 cron 作業,如下所示:

0 0 * * * npx ts-node statuscheck.ts

我相信它並沒有真正起作用,因為 $PATH 在 cron 中是不同的。 有誰知道在 orinal npx 行中最好使用 ts-node 調度此腳本的正確方法?

您需要指定ts文件所在文件夾的路徑。

0 0 * * * /path/to/the/folder/node_modules/.bin/ts-node statuscheck.ts

我終於弄明白了。 似乎在命令中添加“cd”可以完全解決它。 這就是我的 crontab 最終的樣子,沒有錯誤,也不需要安裝任何東西:

PATH=/root/.nvm/versions/node/v12.18.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

0 0 * * * cd /root/app/server/ && npx ts-node ./src/scripts/statuscheck.ts > /root/app/logs/statuscheck.ts.log 2>&1

我已更新為:

PATH=/root/.nvm/versions/node/v12.18.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

30 20 * * * npx ts-node /root/app/server/src/scripts/statuscheck.ts > /root/app/logs/statuscheck.ts.log 2>&1
The log now says the following:
 npx: installed 9 in 2.19s Cannot find module 'typescript' Require stack:

/root/.npm/_npx/80229/lib/node_modules/ts-node/dist/index.js
/root/.npm/_npx/80229/lib/node_modules/ts-node/dist/repl.js
/root/.npm/_npx/80229/lib/node_modules/ts-node/dist/bin.js

我有點不明白,因為路徑現在等於我在終端中擁有的......而且我沒有在終端中被問到這個......它只是沒有問題......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM