繁体   English   中英

每个用户都可以在不使用 Cpanel 网站的情况下执行 cron 任务吗?

[英]Can each user do cron jobs without using the Cpanel website?

我正在使用CakePHP构建此应用程序,它应该允许 web 应用程序的用户安排每周或每隔一天发送电子邮件。 有没有办法让每个用户都有自己的 cron 工作? 如果可能的话,如何做到这一点? 我完全迷路了。

我建议一个单一的、共享的 cron 作业,该作业经常运行,比如每 15 分钟一次,它会检查数据库以查找在该时间或之前安排的所有用户电子邮件并发送它们。

如果一次要发送数十封用户电子邮件,您可能也需要考虑限制这一点。

免责声明:以下代码按原样运行绝对不安全 请把它作为一个例子,不要在任何真实的地方复制和/或粘贴。 你已经被警告了:)

示例 CakePHP 代码:

<?php 

    // ... blah blah boiler plate, action follows:
    public function runscheduler(){
        // you can also have: $jobs = $this->Jobs->all();
        $jobs = $this->Jobs->find(array('conditions' => array('can_run_now' => true)));
        foreach ( $jobs as $job ) {
             // you pick the conditions yourself here, my imagination is drained
             if ( $job->scheduled == time() ) {
                 exec( $job->command ); // huge security threat right here
             }
        }
        // we are done, that's it, whenever crontab calls us 
        // next, we will take care of business
    }
?>

现在剩下的都可以在 TFM 中阅读了:) CakePHP 控制台任务从 Cron 运行控制台任务(抱歉太累了,无法复制粘贴)。

我建议创建一个以您允许的最低间隔运行的 cron。 这个 cron 将通过每个人 go 并检查是否是他们运行的时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM