Daemon守护进程
来自技术开发小组内部wiki
目录
模式
1 子进程模式(Daemon)
示例 php jobs.php -m daemon -c start php jobs.php -m daemon -c stop <执行两次为强制关闭>
2 定时模式(Cron)
示例 php jobs.php -m cron -c daily
3 测试模式(test)
示例 php jobs.php -m init -c test -a <aid> php jobs.php -m init -c testProduct -a <product_id>
子进程工作原理
pcntl_fork 可以产生子进程,使用子进程的原因是创建子进程可以1 避免主进程的内存泄漏 , 降低主进程的开销,调用开发比较容易,子进程采用函数方式调用 数据销毁比较容易2关键是 子进程数量可控制,闲时休眠,后期若请求量大的时候,数量就可以动态调整。 代码请查看daemon.php
埋点队列读取
Queue_Workers 类负责读取队列数据,并分派任务
定时任务处理
Cron_Works 专门处理任务相关的数据
一次性任务处理
Init_Works 类专门处理任务相关的数据
定时任务及用法
15 2 * * * cd /home/www/fmb.daemon/;/usr/local/php5.3/bin/php jobs.php -m cron -c daily >> /home/www/fmb.daemon/cron.log 2>&1 15 * * * * cd /home/www/fmb.daemon/;/usr/local/php5.3/bin/php jobs.php -m cron -c hour >> /home/www/fmb.daemon/cron.log 2>&1 */15 * * * * cd /home/www/fmb.daemon/;/usr/local/php5.3/bin/php jobs.php -m cron -c 15min >> /home/www/fmb.daemon/cron2.log 2>&1 * * * * * cd /home/www/fmb.daemon/;/usr/local/php5.3/bin/php jobs.php -m cron -c min >> /home/www/fmb.daemon/cron2.log 2>&1 daemon cd /home/www/fmb.daemon/;/usr/local/php5.3/bin/php jobs.php -m daemon -c start>> /home/www/fmb.daemon/cron3.log &
检查产品状态
cd /home/www/fmb.daemon/;/usr/local/php5.3/bin/php jobs.php -m init -c test -a aid >> /home/www/fmb.daemon/cron3.log 2>&1 cd /home/www/fmb.daemon/;/usr/local/php5.3/bin/php jobs.php -m init -c TestProduct -a product_id >> /home/www/fmb.daemon/cron3.log 2>&1
检查旧产品最小价格
cd /home/www/fmb.dianping/public_html; /usr/bin/php index.php <product|test> cmdrun setTicketsPrice single <$aid> ;
长线游目录同步
0 2 * * * cd /home/www/fmb.dianping/public_html;/usr/local/php5.3/bin/php index.php test cmdrun longline import_product_index >> /dev/null 2>&1 */1 * * * * cd /home/www/fmb.dianping/public_html;/usr/local/php5.3/bin/php index.php test cmdrun longline import_product_index_increase >> /home/www/fmb.daemon/longline_import_incr.log 3>&1 更新单个产品 cd /home/www/fmb.dianping/public_html;/usr/local/php5.3/bin/php index.php test cmdrun longline import_product_index_by_id <aid>
长线游产品状态 检查等
cd /data2/local-dev/192.168.27.12/fmb.dianping/public_html 批量更新最低价格 php index.php test cmdrun longline deal_status 2 更新单个产品最低价格及状态 php index.php test cmdrun longline check_status_cmd <打包产品id> 3 更新单个产品最低价格 php index.php test cmdrun longline set_min_price_with_big <打包产品id> 4 检查单品状态 <机票> php index.php test cmdrun longline check_plane <单品id> 5 检查单品状态 <酒店> php index.php test cmdrun longline check_hotel <单品id>