Может ли каждый пользователь выполнять задания cron без использования веб-сайта Cpanel? - PullRequest
0 голосов
/ 28 апреля 2011

Я создаю это приложение с CakePHP , которое должно позволить пользователям веб-приложения планировать отправку писем еженедельно или через день. Есть ли способ для каждого пользователя иметь свои собственные задания cron? И если это возможно, как этого достичь? Я полностью потерян.

Ответы [ 3 ]

4 голосов
/ 28 апреля 2011

Я предлагаю одну общую задачу cron, которая запускается часто, скажем, каждые 15 минут, чтобы проверять базу данных на наличие всех электронных писем пользователей, запланированных на это время или раньше, и отправлять их.рассмотрите возможность регулирования этого также, если одновременно отправляются десятки электронных писем пользователей.

1 голос
/ 28 апреля 2011

Отказ от ответственности: следующий код абсолютно небезопасен для запуска как есть.Пожалуйста, возьмите это как пример, который нельзя копировать и / или вставлять где-либо реально.Вы были предупреждены:)

Пример кода 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 (извините, слишком устал для копирования и вставки).

0 голосов
/ 28 апреля 2011

Я бы предложил создать крона, который запускается с минимально возможным интервалом, который вы допустите. Этот cron пройдет через всех и проверит, пора ли им бежать.

...