【问题标题】:How to run a CasperJS script every hour automatically?如何每小时自动运行一个 CasperJS 脚本?
【发布时间】:2017-06-23 18:55:28
【问题描述】:

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

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

  1. 让它每小时自动运行一次
  2. 将其部署到某处(例如 Heroku)

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

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

【问题讨论】:

  • 为什么不在linux服务器上部署脚本并通过cron调度器运行呢?

标签: javascript node.js heroku phantomjs casperjs


【解决方案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 phantomjswhich casperjs)。
  • 不要忘记将绝对路径写入您自己的 CasperJS 脚本。
  • 2>&1stderr 重定向到 stdout


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

npm i spooky

【讨论】:

    猜你喜欢
    • 2021-05-05
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多