带有Node Js的Heroku调度器
我已经在这里跟着这个答案,它的工作原理,但是当我试图打电话给我的应用程序没有任何反应 我有我的主要functionapp.js调用
function start() { ... }
这是我的任务存储在bin,我知道它的工作时,我打电话:
#! /app/.heroku/node/bin/node function mytask() { start(); } initScrape(); process.exit();
之后: heroku run init mytask
λ heroku run init_scrape Running mytask on dyno1... up, run.5157 /app/bin/mytask:3 start(); ^ ReferenceError: start is not defined at mytask (/app/bin/mytask:3:3) at Object.<anonymous> (/app/bin/mytask:5:1) at Module._compile (module.js:413:34) at Object.Module._extensions..js (module.js:422:10) at Module.load (module.js:357:32) at Function.Module._load (module.js:314:12) at Function.Module.runMain (module.js:447:10) at startup (node.js:148:18) at node.js:405:3
您需要从定义的位置开始导出,并且您的脚本需要定义具有start()
的文件。 否则,它会怎么知道在哪里find它?
所以你可能需要修改你的app.js并且说module.exports = start
。 然后在mytask
文件中执行以下操作:
#! /app/.heroku/node/bin/node var start = require('./app.js'); function mytask() { start(); } initScrape(); process.exit();