public function pop($number = 1) { $messages = array(); for ($i = 0; $i < $number; $i++) { if ($message = $this->entity->blpop($this->channel, 3)) { $messages[] = Message::init(json_decode($message[1], true)); } else { break; } } return $messages; }
public function log(Message $message, $flag = '') { if (!file_exists($this->path)) { mkdir($this->path, 0777); } $file = sprintf('%s%s.csv', date('Y-m'), $flag); //手机号,内容,创建时间,发送时间,发送结果 $con = sprintf("%s,%s,%s,%s,%d\n", implode('|', $message->getMobiles()), str_replace(',', ',', $message->getContent()), date('Y-m-d H:i:s', $message->getCreatedAt()), date('Y-m-d H:i:s', $message->getSendAt()), (int) $message->getResult()); file_put_contents($this->path . $file, $con, FILE_APPEND); }
<?php /* * 生成新消息,放入主queue中 */ include_once __DIR__ . '/config.php'; use Filix\SMS\Queue\RedisQueue; use Filix\SMS\Message\Message; use Filix\SMS\Producer\PrimaryProducer; use Filix\SMS\SmsService\BWService; $redis = new Redis(); $redis->connect(REDIS_HOST, REDIS_PORT); $primaryQueue = new RedisQueue($redis, PRIMARY_CHANNEL); $secondaryQueue = new RedisQueue($redis, SECONDARY_CHANNEL); $message = new Message(); $message->setMobiles(array('13764528569')); //$message->setMobiles(array('13764528569', '13482089506')); $producer = new PrimaryProducer(new BWService(), $primaryQueue, $secondaryQueue); //while (1){ $message->setContent(date('Y-m-d/H:i:s')); $result = $producer->send($message); echo $result ? "success\n" : "fail\n"; // sleep(1); //}
<?php /* * 定时向管理员手机发送短信 */ include_once __DIR__ . '/config.php'; use Filix\SMS\Message\Message; use Filix\SMS\SmsService\BWService; $service = new BWService(); while (1) { $message = new Message(); $message->setMobiles(array(ADMIN_MOBILE)); $content = mb_convert_encoding('百悟SMS服务监测短信,send at: ' . date('Y-m-d H:i:s'), "gbk", "utf-8"); $message->setContent($content); $errors = $service->send(array($message)); echo (count($errors) ? "fail at: " : "success at: ") . date('Y-m-d H:i:s') . "\n"; unset($message); unset($errors); sleep(60 * 60); //一小时发一次 }