所以,我有一个cron作业,代码如下:
class UGCJReminder extends UGCronJob {
/**
* return the cron description
*/
protected function getDescription()
{
return Yii::t('userGroupsModule.cron', 'manda email para os usuarios cadastrados para cadastrar suas atividades');
}
/**
* return the cron table model name
*/
protected function getCronTable()
{
return 'UserGroupsCron';
}
/**
* return the cron name
*/
protected function getName()
{
return 'reminder';
}
/**
* returns the number of days that have to pass before performing this cron job
*/
protected function getLapse()
{
return 1;
}
/**
* return the model
*/
protected function getModel()
{
return new UserGroupsUser;
}
/**
* return the action method
*/
protected function getAction()
{
Yii::import('ext.yii-mail.YiiMailMessage');
$message = new YiiMailMessage;
$message->setBody('Message', 'text/html');
$message->subject = 'Lembrete';
$message->addTo('my-email');
$message->from = Yii::app()->params['adminEmail'];
return Yii::app()->mail->send($message);
}
/**
* return the action criteria
*/
protected function getCriteria()
{
return new CDbCriteria;
}
/**
* return the interested database fields
*/
protected function getColumns()
{
return array('email' => UserGroupsUser::ACTIVE);
#return NULL;
}
}
我对UserGroups(Yii模块)提出的文档做了所有其他更改,而cron列表显示我的cron已安装并正在运行。但是,它每天运行多次,每天只运行一次。那么我做错了什么?
我也会接受另一个解决此问题的方法(每天确定的时间发送一封电子邮件)。请考虑我正在使用Yii,因此想在框架内执行此操作(例如扩展)
PS:如果你知道很好的文档资源(因为Usergroups,Cron-tab和Yii本身在记录所有这些工作方面的效果不是很强)关于所有这些,我仍然会对此感兴趣
答案 0 :(得分:0)
我之前从未使用过这种扩展。 但是我看一下源代码并注意这个片段:
https://github.com/nickcv/userGroups/blob/master/components/UGCron.php#L206
if ($cItem->last_occurrence <= date('Y-m-d', time() - (3600 * 24 * $cItem->lapse)).' 00:00:00') {
...
$cItem->last_occurrence = date('Y-m-d').' 00:00:00';
$cItem->save();
}
我想问你下一个问题:
if
运算符在您的情况下是否正常运行? $cItem->last_occurrence
更新吗?