Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Windows任务调度器运行PHP脚本一小时后发送电子邮件_Php_Email - Fatal编程技术网

使用Windows任务调度器运行PHP脚本一小时后发送电子邮件

使用Windows任务调度器运行PHP脚本一小时后发送电子邮件,php,email,Php,Email,当用户将视频添加到我的网站时,我希望在他们的帖子发布一小时后发送一封电子邮件,提醒他们视频已经上传,可以供他们查看 是否仍要使用Windows任务计划程序执行此操作?电子邮件是使用php文件发送的,因此理想情况下,php文件会运行,然后在运行一小时后发送电子邮件。一些假设: 您已将文件上载日期/时间存储在数据库的某个位置 您有一个PHP脚本,用于读取此数据库字段和 检查上传后是否已过一小时 您还具有一个字段,用于标记电子邮件是否已发送用于 上传 假设以上三项为真,您可以有一个任务调度器条目,

当用户将视频添加到我的网站时,我希望在他们的帖子发布一小时后发送一封电子邮件,提醒他们视频已经上传,可以供他们查看

是否仍要使用Windows任务计划程序执行此操作?电子邮件是使用php文件发送的,因此理想情况下,php文件会运行,然后在运行一小时后发送电子邮件。

一些假设:

  • 您已将文件上载日期/时间存储在数据库的某个位置
  • 您有一个PHP脚本,用于读取此数据库字段和 检查上传后是否已过一小时
  • 您还具有一个字段,用于标记电子邮件是否已发送用于 上传
假设以上三项为真,您可以有一个任务调度器条目,如

C:\Path\to\php.exe-f“C:\Path\to\send\u email.php”

如果您使用的是旧版本的Windows,它不允许您在其中输入命令,而只允许您选择一个程序,则将此命令另存为批处理文件,然后从界面中选择它


现在请记住,如果您希望它在一小时后发送电子邮件,那么您需要将此任务安排为每分钟运行一次

简单的回答是,使用Windows任务调度器确实没有任何方法可以做到这一点。您想使用队列或Cron作业来实现此类功能为什么不在视频实际上传时发送电子邮件?为什么是1小时后?因为目前视频上传和处理大约需要一个小时。问题仍然存在,为什么不在上传和处理完成后发送呢?一个优雅的解决方案是使用MSMQ消息,让站点向MSMQ发送消息,然后由处理程序检查消息队列并发送电子邮件以查找一小时前的消息。哦,&如果您在sql中设置了电子邮件,那么您可以使用sql作业调度器&具体取决于您的环境。因素。