2011-04-28 48 views

回答

4

我建議經常運行一個單一的,共享的cron作業,比如每隔15分鐘,將檢查數據庫的計劃或在該時間之前,並送他們的所有用戶的電子郵件。

你可能需要考慮過這個節流,如果有幾十個用戶電子郵件的同時發送。

+0

這對於幾千名用戶來說是如何做到的。 – 2011-04-28 02:01:59

+0

好吧,這是有道理的。但如何將用戶添加到cron選項卡?假設http://example.com/emails/testusers/autosend發送電子郵件給測試用戶,他們將如何添加到cron選項卡 – Noob 2011-04-28 02:04:47

+0

他們不直接添加/安排cron作業。他們在應用程序中添加/安排某些內容。應用程序運行cron作業並檢查它們。 – 2011-04-28 02:16:36

0

我會建議創建一個以儘可能小的間隔運行的cron,這個cron會通過每個人,並檢查是否是他們的時間來運行。

0

聲明:以下代碼絕對是不安全以原樣運行。請以它爲例,不要在任何地方複製和/或粘貼。你已經被警告:)

示例代碼的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 Console TasksRunning Console Tasks from Cron(對不起太累了,複製粘貼)。

相關問題