如何在Symfony2中的特定时间注册要调用的函数?

时间:2011-10-06 03:18:21

标签: symfony timer

如何在将来的特定时间注册要调用的代码?

我希望允许用户创建“对象”并拥有一个处理程序,该处理程序会在给定的时间(例如1小时)后自动通过电子邮件向他们发送有关该对象的统计信息。理想情况下,我可以在Symfony代码库的某些部分注册处理程序,但我无法知道如何执行此操作(到目前为止,所有Google搜索都是关于Symfony2测试版的时间:P)

1 个答案:

答案 0 :(得分:3)

我建议您创建一个Symfony2控制台命令,然后您可以访问整个框架,包括依赖注入容器等。这个细节已经在Symfony2 cookbook中结束了,所以我不会在这里复制它们,因为食谱条目非常彻底。一旦创建了具有例如example:my-task的任务名称的命令类,就可以在crontab文件中弹出类似于以下内容的条目:

# Run your command every 5 mins
*/5 * * * * /path/to/symfony2/app/console example:my-task

根据需要附加任何命令行参数,例如--env=prod。上面的路径是Symfony2应用程序所在位置的路径,随后可以运行Symfony2 app/console脚本。