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

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


使它每小时自动运行
部署到某个地方(例如Heroku)


我可以通过使节点服务器每小时运行一次命令casperjs casper/cas.js(使用setInterval函数)来实现第一个目标。但是,我无法在Heroku上部署它,因为它仅支持一种类型的代码(Node.js)。 cas.js脚本是用CasperJS编写的,因此无法执行!

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

最佳答案

假设您使用的是Linux ...


1.最优雅的解决方案是使用作业,如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命令的路径。
使用/usr/local/bin/phantomjs(/usr/local/bin/casperjs和which)确保PhantomJS和CasperJS路径分别为which phantomjs和which casperjs。
不要忘记为您自己的CasperJS脚本编写绝对路径。
2>&1将stderr重定向到stdout。



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

npm i spooky

关于javascript - 如何自动每小时运行一次CasperJS脚本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44728242/

10-13 02:58