ä¼ç¤¾ã®èªåã®PC(Windows)ã§ä½ããå®æçã«å®è¡ãããã¨ãã¯
ã ãããPythonãªãnode.jsãªãã§ã¹ã¯ãªãããæ¸ãã¦
ã¿ã¹ã¯ã¹ã±ã¸ã¥ã¼ã©ã«ç»é²ãã¦ããã
ã®ã ãã©ã
ã¿ã¹ã¯ã¹ã±ã¸ã¥ã¼ã©ã¯æªãã°ã¤ã³æã«å®è¡ãããã¨ããã¨
ãã°ã¤ã³ã¢ã«ã¦ã³ããç»é²ãã¦ããå¿ è¦ããã£ããã
ãã¹ã¯ã¼ããå¤æ´ããæã«æ´æ°ãå¿ãã¦å®è¡ã«å¤±æãã¾ãã£ã¦ããã
ãã®ãã°ã¤ã³å¤±æã®ããã§ç¤¾å ãããã¯ã¼ã¯ããéãåºããã¡ãã£ããã
è²ã ã¨å°ããã¨ãããã
Linuxã®crondã¨åããããªä»çµã¿ãã§ããªãããã¨æ¢ãã¦ã¿ãã
ãpm2ãã¨ãnode-cronãã®çµã¿åããã§å®ç¾ã§ãããã ã£ãã®ã§ã試ãã¦ã¿ãã
åèæ å ±
ãã¡ãã®åèãã¼ã¸ãèªãã ããã®ãã¨ã®å 容ã¯èªã¾ãªãã¦ãè¯ãããããªã®ã ãã©ã
node.jsで定期的にスクリプトを実行するにはpm2が便利 |
ãnode-cronãã¯ãã®åã®éãnode.jsã§cronæ©è½ãå®ç¾ããããã®ã©ã¤ãã©ãªã§ã
cron風ã®æ¸å¼ã§ã¹ã±ã¸ã¥ã¼ã«ã¨é¢æ°ãç»é²ãã¦ããã¨
æå®ããã¿ã¤ãã³ã°ã§ãã®é¢æ°ãå®è¡ãã¦ãããã
ããã ãã§ãã¾ãååãªã®ã ãã©ãPCã®èµ·åæã«èªåèµ·åãããã®ã§ã
ãpm2ãã§ããã»ã¹ã管çããä»çµã¿ã«ãã¦ããã
ãµã³ãã«
ä¾ãã°Redmineã®æªå®äºãã±ããã®æ å ±ã
å®æçã«DBã«ä¿åãã¦ãã¨ã§éè¨ãããã¨ãã¦ã
ãimport_tickets.jsãã¨ãããã¡ã¤ã«ã«
asyncãªexportãããmainé¢æ°ã§ãã®å¦çãæ¸ããã¨ããã
ããã¤ãå®æå®è¡ããå ´åãä¸è¨ã®ãããªæé ã¨ãªãã
ã¾ããåæºåã¨ãã¦ãpm2ã¨node-cronãnpm installãã¦ããã
npm install --save node-cron
npm install -g pm2
ãã¨ãWindowsã§èªåèµ·åãããããã«pm2ã®ãã©ã°ã¤ã³çãªãã®ã追å ããã
npm install -g pm2-windows-startup
次ã«node-cronç¨ã®JSãã¡ã¤ã«ãä½æããã
æ¯æ0å0ç§ã«å®è¡ãããã¨ããã¨ãä¸è¨ã®ãããªã³ã¼ãã«ãªãã
import_tickets_cron.js
const cron = require('node-cron'); const importTickets = require('./import_tickets'); cron.schedule('0 0 * * * *', async () => { await importTickets.main(); console.log('job completed'); });
node-cronã ãã§åããå ´åã¯ä¸è¨ã®ããã«èµ·åããã°
ã¡ããã¨ããã»ã¹ãç«ã¡ä¸ãã£ã¦æ¯æå®è¡ãã¦ãããã
node import_tickets_cron.js
次ã«ãã®ã¹ã¯ãªãããpm2ã§ç®¡çã§ããããã«ããã
pm2 start import_tickets_cron.js
åèµ·åãã¦ãè¨å®ãæ®ããããããã»ã¹ãªã¹ããä¿åããã
pm2 save
æå¾ã«ãPCèµ·åæã«èªåèµ·åããããã«ç»é²ããã
pm2-startup install
ããã§OKã
Windowsã®ãã°ã¤ã³ã¢ã«ã¦ããæ±ãããããã¨ããªãã
ããã¯ã°ã©ã¦ã³ãã§æ¯æéå¦çãã¦ãããã
ããã
äºæ³ãããç°¡åã«å®æå¦çãå®ç¾ã§ããã
SSHãã³ãã«ãç«ã¡ä¸ãã¦ããã¨ãã社å ãã¼ã¿ã«ãµã¤ãããã§ãã¯ããã¨ãã
è²ã ãªèªååã«å¿ç¨ã§ãããã

- ä½è : Al Sweigart,ç¸å·æä¸
- åºç社/ã¡ã¼ã«ã¼: ãªã©ã¤ãªã¼ã¸ã£ãã³
- çºå£²æ¥: 2017/06/03
- ã¡ãã£ã¢: åè¡æ¬ï¼ã½ããã«ãã¼ï¼
- ãã®ååãå«ãããã° (6件) ãè¦ã