我正在尝试通过我的应用中的cron作业向某些用户发送电子邮件通知。
经过几个小时的阅读,我明白最好的方法就是使用Shell。
请有人帮我理解如何做到这一点,我如何使用myShell类的不同操作发送不同的通知?我的意思是cron如何访问myShell的不同动作。
例如。
<?php
class MyShell extends Shell {
function send_task_notifications(){
.... //this must send email every day at 00:00 am
}
function send_new_post_notifications() {
.... //this must send email every week//
}
}
?>
这两个操作都在MyShell类中。
那么如何通过Cron调用其中一个,这个MyShell类是否可以通过URL访问?
答案 0 :(得分:1)
您的shell需要以下列方式进行更改,您需要根据该参数传递参数,它将执行电子邮件通知/推送通知。将您的功能移动到可以使用的组件
<?php
class MyShell extends Shell {
function main()
{
$option = !empty($this->args[0]) ? $this->args[0] : ”;
echo ‘Cron started without any issue.’;
App::import(‘Component’, 'MyOwnComponent');
$this->MyOwnComponent = &new MyOwnComponent();
switch ($option)
{
case 'task_notifications':
$this->MyOwnComponent->send_task_notifications();
break;
case 'post_notifications':
$this->MyOwnComponent->send_new_post_notifications();
break;
default:
echo 'No Parameters passed .';
}
}
}
?>
您的组件文件如下
<?php
class MyOwnComponent extends Object
{
function send_task_notifications(){
.... //this must send email every day at 00:00 am
}
function send_new_post_notifications() {
.... //this must send email every week//
}
}
?>
有关详细信息,请参阅链接http://cakephpsaint.wordpress.com/2013/05/15/6-steps-to-create-cron-jobs-in-cakephp/