Cron.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace Log\Lib;
  3. use Dever;
  4. class Cron extends Core
  5. {
  6. public function get()
  7. {
  8. # 获取所有项目
  9. $config = $this->config();
  10. $day = array();
  11. $day[0] = date('Y-m-d-H');
  12. $day[1] = date('Y-m-d-H', strtotime("-1 hour"));
  13. if (isset($config['project'])) {
  14. foreach ($config['project'] as $k => $v) {
  15. foreach ($day as $i => $j) {
  16. $data = $this->getDataByProject($j, $v['id'], $v['key']);
  17. $this->write($data);
  18. }
  19. }
  20. }
  21. }
  22. private function write($data)
  23. {
  24. //$data[0]写入到data表中,data[1]写入到es中
  25. }
  26. private function getDataByProject($day, $id, $key)
  27. {
  28. $data = Dever::getLog($day, $key . '/');
  29. $source = array();
  30. $source['project_id'] = $id;
  31. $source['time'] = $day;
  32. $source['pv'] = 0;
  33. $source['uv'] = 0;
  34. if ($data) {
  35. $result = array();
  36. $pv = $uv = 0;
  37. $user = array();
  38. foreach ($data as $k => $v) {
  39. if ($v) {
  40. $temp = explode('dever&', $v);
  41. $info = explode(' ', $temp[0]);
  42. $result[$k]['time'] = $info[0];
  43. $result[$k]['project'] = $info[1];
  44. $result[$k]['app'] = $info[2];
  45. parse_str($temp[1], $result[$k]['param']);
  46. $pv++;
  47. if (isset($result[$k]['param']['uid']) && $result[$k]['param']['uid'] > 0) {
  48. $user[$result[$k]['param']['uid']] = 1;
  49. } else {
  50. $user[$result[$k]['param']['ip']] = 1;
  51. }
  52. }
  53. }
  54. $source['pv'] = $pv;
  55. $source['uv'] = count($user);
  56. }
  57. return array($source, $result);
  58. }
  59. public function get_api(){}
  60. }