0

在 cloudControl 上,我可以通过工作人员运行本地任务,也可以运行cronjob

如果我想定期执行本地任务怎么办(我不想调用可公开访问的网站)。

我看到了可能的解决方案:

  1. 根据文件

    “cloudControl 上的 cronjobs 是对您指定的 URL 的定期调用。”

    所以在本地调用文件是不可能的(?)。所以我必须创建一个可以通过 URL 调用的页面。如果客户端在本地主机(=服务器)上,我必须执行检查——我想避免这种方式。

  2. 我让工人sleep()达到所需的时间,然后让它重新运行。

    // do some arbitrary action
    Foo::doSomeAction();
    
    // e.g. sleep 1 day
    sleep(86400);
    
    // restart worker
    exit(2);
    

推荐哪一个?
(或者:我可以简单地通过 cron 调用本地文件吗?)

4

1 回答 1

2

第一个选项是不可能的,因为 url 请求是从单独的 web 服务发出的。您可以在 cron 任务中使用 HTTP 身份验证,但工作人员解决方案也完全有效。

请记住,worker 可以迁移到不同的服务器(在软件更新或硬件故障的情况下),因此 SomeAction() 可能会不时地每天执行一次以上。

于 2013-09-30T20:23:15.233 回答