如何自动每小时运行一次CasperJS脚本?

时间:2017-06-23 18:55:28

标签: javascript node.js heroku phantomjs casperjs

我有一个CasperJS代码,可以在我的网站上执行某些任务。我希望代码每小时运行一次!

目前,代码每次都在本地和手动(使用casperjs cas.js)运行。现在我想:

  1. 让它自动每小时运行
  2. 将其部署到某处(例如Heroku)
  3. 我可以通过创建每小时运行命令casperjs casper/cas.js的节点服务器(使用setInterval函数)来实现第一个目标。但是,我无法在Heroku上部署它,因为它只支持一种类型的代码(Node.js)。 cas.js脚本是用CasperJS编写的,因此无法执行!

    实现这两个目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

我们假设你在Linux上......


1。最优雅的解决方案是使用cron作业,如Vaviloff所示。

如果您想每小时执行 CasperJS 脚本,可以使用crontab -e编辑crontab,然后添加以下条目:

0 * * * * PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs /usr/local/bin/casperjs /absolute/path/to/your/casper/script.js 2>&1

一些评论:

  • 0表示“0分钟”。这是必需的,否则您的脚本将每分钟运行一次。
  • 由于CasperJS依赖于 PhantomJS ,您必须使用适当的环境变量(PHANTOMJS_EXECUTABLE)指定PhantomJS命令的路径。
  • 确保PhantomJS& CasperJS路径分别为/usr/local/bin/phantomjs/usr/local/bin/casperjs,使用whichwhich phantomjs& which casperjs)。
  • 不要忘记将绝对路径写入您自己的CasperJS脚本。
  • 2>&1 stderr 重定向到 stdout


2。如果要使用Node.js运行CasperJS脚本,请使用SpookyJS

npm i spooky
相关问题