CronAction.class.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. class CronAction extends Action {
  3. public function releaseRedisExpiredLicenseplate( ){
  4. $start = time();
  5. $preselect_plate_queue = Redis("wjw_preselect_plate_queue","queue");
  6. $plate_preselect_pool = Redis("plate_preselect_pool","set");
  7. do{
  8. $info = $preselect_plate_queue -> pop();
  9. if(!$info){
  10. echo "no more message".PHP_EOL;
  11. sleep(1);
  12. continue;
  13. }
  14. if(!$info['LicensePlate']){
  15. echo "LicensePlate empty!".PHP_EOL;
  16. continue;
  17. }
  18. //过期预约车牌,释放到公选池
  19. if(time()>$info['ExpireTime']){
  20. $plate_preselect_pool -> add($info['LicensePlate']);
  21. echo 'LicensePlate: '.$info['LicensePlate'].' timeout, push to plate_preselect_pool'.PHP_EOL;
  22. }
  23. }while(time()-$start<60);
  24. /*
  25. $config = parse_url(C('REDIS_DSN'));
  26. $redis = new Redis();
  27. $redis->connect($config["host"],$config["port"]?:6379);
  28. $redis->auth($config["pass"]?: "");
  29. $redis->select(trim($config['path'],'//') ? : 0);
  30. $all = $redis->hgetall('wjw_plate');
  31. foreach($all as $key=>$val){
  32. $data = json_decode($val,true);
  33. $orderstatus = M('jms_order')->where(array('LicensePlate'=>$key))->getField('OrderStatus');
  34. if($orderstatus == NULL){
  35. $time = time() - (C('EXPIREIN')*60);
  36. if($time > $data['Timestamp']){
  37. $result = $redis->sAdd('plate_preselect_pool' , $key);
  38. if(!$result){
  39. json_fail('释放过期车牌失败');
  40. }
  41. }
  42. }
  43. if($orderstatus == 2){
  44. $p = Redis("wjw_plate","hash");
  45. $res = $p->where($key)->delete();
  46. if(!$res){
  47. json_fail('删除过期车牌失败');
  48. }
  49. $result = $redis->sAdd('plate_preselect_pool' , $key);
  50. if(!$result){
  51. json_fail('释放过期车牌失败');
  52. }
  53. }
  54. if($orderstatus == 1){
  55. $p = Redis("wjw_plate","hash");
  56. $res = $p->where($key)->delete();
  57. if(!$res){
  58. json_fail('删除已开户车牌失败');
  59. }
  60. }
  61. }
  62. json_success('执行完毕');
  63. */
  64. }
  65. }