Linux系统下能否实现以下这个功能
现在的做法是,通过crontab每分钟执行一个php,这个php负责从数据库中取出邮件,然后发送
问题是,如果邮件很多,每分钟执行不完,那会造成很多php进程
能不能实现等这个php执行完了立即启动一个新的?不用crontab
第一种 用crontab,你可以做个数量的限制,例如每分钟发送十个邮件,然后继续每分钟执行这个文件
第二种, 创建两个程序, 一个是执行程序一直死循环的跑着, 去file 另外一个发邮件的程序 如果得到另外一个程序邮件发送成功就执行下一个
第一种 用crontab 配合SH 脚本,如果SH 脚本检测到发邮件的程序进程在运行,表示邮件没发完,则不做任何事,如果没有进程,则表示程序已执行完,启动新进程 再重新开始发邮件
第二程 while(true) + sleep
思路:两个crontab。
A crontab :每分钟执行一个readdb.php,这个php负责从数据库中取出邮件,并存放到一个指定文件mail_list
B crontab :每分钟执行一个sendmail.php,这个php负责去mail_list文件中读取一个邮件地址,发送邮件,然后删除mail_list中的本条记录。
你的需求是把邮件队列中新加入的邮件不断的按一定顺序发送出去是吧?
而触发方式是定时检查?
最简单的方式就是while(true) + sleep
然后发现它缺少守护进程,一但程序终止了工作就停止了。
你之前之所以用crontab就是因为防止它不工作了,不是么:)
其实问题就在于如何保证随时有进程在运行。
不用crontab不是不行,但是作为php脚本你需要想办法保证它长时间正常工作。
关于很多脚本同时运行,这说明你未作任何处理导致的。很多办法可以解决这个问题
相关问答:
C/C++ code:
char Time="2009-9-23";
FILE *fpOut=fopen("1.txt","w+");
if(fpOut==NULL)
return ;
fwr ......
问题依旧。。以为自己解决了
为什么ioctl(fd,I2C_SLAVE,0x50) 正确,这个是EEPROM
而ioctl(fd,I2C_SLAVE,0xea) 则提示INVALID ARGUMENT? 这个是I/O扩展器件
可以肯定的是,硬件没问题的,因为别的CPU不用l ......
我写了一个OCCI的程序,该程序在linux下面运行一切正常,但是同样的代码到AIX下再编译运行就出问题了.而且一次提交数量的不同,报的错也不同.
C/C++ code:
#include <iostream>
#include <occi.h>
u ......
我在windows 下一切都正常, 但是移植到linux apache + tomcat5.5 下 在上传图片的时候 点击 “浏览服务器” 后 就报
The server didn't send back a proper XML response . please contact your ......