123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- <?php
- /**
- * Created by PhpStorm.
- * User: stanley-king
- * Date: 2017/2/26
- * Time: 下午7:36
- */
- class MsgStates extends Stackable
- {
- public function run() {
- }
- }
- class StatesHelper
- {
- static public function onIndex($states,$msg)
- {
- $type = $msg['type'];
- if($type == 'tags') {
- $states['tags'] = true;
- }
- elseif($type == 'special') {
- $states['special'] = true;
- }
- elseif($type == 'brands') {
- $states['brands'] = true;
- }
- elseif($type == 'fcode') {
- $states['fcode'] = true;
- }
- }
- static public function onGoods($states,$msg)
- {
- $type = $msg['type'];
- if($type == 'common_info') {
- $states['common_info'] = true;
- }
- }
- static public function onActivity($states,$msg)
- {
- $type = $msg['type'];
- if($type == 'full_sent') {
- $states['full_sent'] = true;
- }
- elseif($type == 'groupbuy') {
- $states['groupbuy'] = true;
- }
- elseif($type == 'limit') {
- $states['limit'] = true;
- }
- elseif($type == 'recommend_goods') {
- $states['recommend_goods'] = true;
- }
- elseif($type == 'bundling') {
- $states['bundling'] = true;
- }
- elseif($type == 'recommend_combo') {
- $states['recommend_combo'] = true;
- }
- }
- static public function onSearcher($states,$msg)
- {
- $type = $msg['type'];
- if($type == 'init') {
- $states['init'] = true;
- }
- }
- static public function fetch_state($tag)
- {
- global $gMessageStates;
- global $gMessageLock;
- $finded = false;
- Mutex::lock($gMessageLock);
- foreach ($gMessageStates as $key => $val)
- {
- if($key == $tag)
- {
- $finded = true;
- $state = $gMessageStates[$tag];
- if($state == true) {
- $gMessageStates[$tag] = false;
- break;
- }
- }
- }
- if($finded == false) {
- $gMessageStates[$tag] = false;
- $state = true;
- }
- Mutex::unlock($gMessageLock);
- return $state;
- }
- static public function init()
- {
- global $gMessageStates;
- global $gMessageLock;
- Mutex::lock($gMessageLock);
- $gMessageStates['tags'] = true;
- Mutex::unlock($gMessageLock);
- }
- }
- function handler_redis($redis, $chan, $msg)
- {
- if (defined(UGC_SUBSCRIBER_PROC) && UGC_SUBSCRIBER_PROC == true)
- {
- if($chan == 'special') {
- UgcHandler::onSpecial($msg);
- }
- elseif($chan == 'fellow') {
- UgcHandler::onFellow($msg);
- } else {
- Log::record("message: {$chan} -- {$msg}",Log::DEBUG);
- }
- }
- else
- {
- $cur_trd = Thread::getCurrentThread();
- $cur_trd->dispatch($chan,$msg);
- }
- }
|