]> git.mxchange.org Git - friendica-addons.git/blob - twitter/twitter_sync.php
Twitter: The sync process is split into several short processes
[friendica-addons.git] / twitter / twitter_sync.php
1 <?php
2 if (!file_exists("boot.php") AND (sizeof($_SERVER["argv"]) != 0)) {
3         $directory = dirname($_SERVER["argv"][0]);
4
5         if (substr($directory, 0, 1) != "/")
6                 $directory = $_SERVER["PWD"]."/".$directory;
7
8         $directory = realpath($directory."/..");
9
10         chdir($directory);
11 }
12
13 require_once("boot.php");
14
15
16 function twitter_sync_run($argv, $argc){
17         global $a, $db;
18
19         if(is_null($a)) {
20                 $a = new App;
21         }
22
23         if(is_null($db)) {
24                 @include(".htconfig.php");
25                 require_once("include/dba.php");
26                 $db = new dba($db_host, $db_user, $db_pass, $db_data);
27                 unset($db_host, $db_user, $db_pass, $db_data);
28         };
29
30         require_once("addon/twitter/twitter.php");
31         require_once("include/pidfile.php");
32
33         $maxsysload = intval(get_config('system','maxloadavg'));
34         if($maxsysload < 1)
35                 $maxsysload = 50;
36         if(function_exists('sys_getloadavg')) {
37                 $load = sys_getloadavg();
38                 if(intval($load[0]) > $maxsysload) {
39                         logger('system: load ' . $load[0] . ' too high. Twitter sync deferred to next scheduled run.');
40                         return;
41                 }
42         }
43
44         if ($argc < 3) {
45                 return;
46         }
47
48         $mode = intval($argv[1]);
49         $uid = intval($argv[2]);
50
51         /// @todo Replace it with "App::is_already_running" in the next release
52         $lockpath = get_lockpath();
53         if ($lockpath != '') {
54                 $pidfile = new pidfile($lockpath, 'twitter_sync-'.$mode.'-'.$uid);
55                 if($pidfile->is_already_running()) {
56                         logger("Already running");
57                         if ($pidfile->running_time() > 9*60) {
58                                 $pidfile->kill();
59                                 logger("killed stale process");
60                                 // Calling a new instance
61                                 proc_run('php','addon/twitter/twitter_sync.php', $mode, $uid);
62                         }
63                         exit;
64                 }
65         }
66
67         if ($mode == 1) {
68                 twitter_fetchtimeline($a, $uid);
69         } elseif ($mode == 2) {
70                 twitter_fetchhometimeline($a, $uid);
71         }
72 }
73
74 if (array_search(__file__,get_included_files())===0){
75         twitter_sync_run($_SERVER["argv"],$_SERVER["argc"]);
76         killme();
77 }
78 ?>