//定义根目录 define("ROOT", dirname(__FILE__) . "/"); //主队列 define('QUEUE_KEY', 'millipede:queue:' . $queue_id); //安全队列:异常中断时候保存未完成的队列信息,重启队列后写回到主队列 define('QUEUE_KEY_SECURE', 'millipede:queue:secure:' . $queue_id); //worker的注册信息 require './inc/register.php'; require './inc/constants.php'; require './inc/redis.php'; require './inc/mysql.php'; require './inc/memcached.php'; //worker的父类 require './worker.php'; //redis长连接 $GLOBALS['redis'] = $redis = getRedisConnect($_redis_config, true); $GLOBALS['worker_list'] = array(); //记录队列ID //$redis->hset('millipede:queue:ids', 'queue:'.$queue_id, 1); $secure_data = $redis->lrange(QUEUE_KEY_SECURE, 0, -1); //把之前异常的队列信息再次放入到队列中 if (is_array($secure_data)) { foreach ($secure_data as $value) { $redis->rpoplpush(QUEUE_KEY_SECURE, QUEUE_KEY); } } //阻塞队列 while (true) { $rs = $redis->brpoplpush(QUEUE_KEY, QUEUE_KEY_SECURE, 0); if ($rs != '') { //日志文件
<?php //从网页获取图片路径,push到redis的队列 $page_url = 'http://www.moko.cc/moko/post/1.html'; $str = file_get_contents($page_url); preg_match_all('/src2="(http:\\/\\/.*jpg)" alt/', $str, $match); require dirname(__FILE__) . '/../inc/redis.php'; $redis = getRedisConnect($_redis_config); define('QUEUE_KEY', 'millipede:queue:0'); foreach ($match[1] as $pic_url) { $queue_data = array('type' => 'cli', 'worker' => 'picspider', 'from' => 'test', 'data' => array('picurl' => $pic_url, 'time' => date('Y-m-d H:i:s'))); if ($redis->lpush(QUEUE_KEY, json_encode($queue_data))) { echo '消息推送成功...', PHP_EOL; } }