video_play_url.auto_cache.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. class video_play_url_auto_cache extends auto_cache{
  3. private $key = "video:play:url:";
  4. public function load($video)
  5. {
  6. $this->key .= $video['id'];
  7. $key_bf = $this->key . '_bf';
  8. $play_url = $GLOBALS['cache']->get($this->key, true);
  9. if ($play_url === false) {
  10. $is_ok = $GLOBALS['cache']->set_lock($this->key);
  11. if (!$is_ok) {
  12. return $GLOBALS['cache']->get($key_bf, true);
  13. }
  14. fanwe_require(APP_ROOT_PATH . 'mapi/lib/core/video_factory.php');
  15. $video_factory = new VideoFactory();
  16. $channel_info = $video_factory->GetVodUrls($video['channelid'], $video['begin_time']);
  17. if(! $channel_info['status']){
  18. return;
  19. }
  20. $play_url = $channel_info['urls']['20'];
  21. if($play_url){
  22. $GLOBALS['cache']->set($this->key, $play_url, 3600 * 12, true);
  23. $GLOBALS['cache']->set($key_bf, $play_url, 86400, true);//备份
  24. }
  25. }
  26. return $play_url;
  27. }
  28. public function rm()
  29. {
  30. $GLOBALS['cache']->clear_by_name($this->key);
  31. }
  32. public function clear_all()
  33. {
  34. $GLOBALS['cache']->clear_by_name($this->key);
  35. }
  36. }
  37. ?>