forked from extern/egroupware
fixed wired data-values created directly after migration to json, got semaphore working again and fixing all IDE warnings
This commit is contained in:
parent
3057666b58
commit
b7ba581ef4
@ -157,17 +157,17 @@ class asyncservice
|
|||||||
// as empty patterns get enumerated before the the last pattern and
|
// as empty patterns get enumerated before the the last pattern and
|
||||||
// get set to the minimum after
|
// get set to the minimum after
|
||||||
//
|
//
|
||||||
$n = $first_set = $last_set = 0;
|
$i = $first_set = $last_set = 0;
|
||||||
foreach($units as $u => $date_pattern)
|
foreach($units as $u => $date_pattern)
|
||||||
{
|
{
|
||||||
++$n;
|
++$i;
|
||||||
if (isset($times[$u]))
|
if (isset($times[$u]))
|
||||||
{
|
{
|
||||||
$last_set = $n;
|
$last_set = $i;
|
||||||
|
|
||||||
if (!$first_set)
|
if (!$first_set)
|
||||||
{
|
{
|
||||||
$first_set = $n;
|
$first_set = $i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -261,6 +261,7 @@ class asyncservice
|
|||||||
// now we have the times enumerated, lets find the first not expired one
|
// now we have the times enumerated, lets find the first not expired one
|
||||||
//
|
//
|
||||||
$found = array();
|
$found = array();
|
||||||
|
$over = null;
|
||||||
while (!isset($found['min']))
|
while (!isset($found['min']))
|
||||||
{
|
{
|
||||||
$future = False;
|
$future = False;
|
||||||
@ -276,7 +277,7 @@ class asyncservice
|
|||||||
if ($this->debug) echo "--> already have a $u = ".$found[$u].", future='$future'<br>\n";
|
if ($this->debug) echo "--> already have a $u = ".$found[$u].", future='$future'<br>\n";
|
||||||
continue; // already set
|
continue; // already set
|
||||||
}
|
}
|
||||||
foreach($times[$u] as $unit_value => $nul)
|
foreach(array_keys($times[$u]) as $unit_value)
|
||||||
{
|
{
|
||||||
switch($u)
|
switch($u)
|
||||||
{
|
{
|
||||||
@ -300,13 +301,13 @@ class asyncservice
|
|||||||
}
|
}
|
||||||
if (!isset($found[$u])) // we have to try the next one, if it exists
|
if (!isset($found[$u])) // we have to try the next one, if it exists
|
||||||
{
|
{
|
||||||
$next = array_keys($units);
|
$nexts = array_keys($units);
|
||||||
if (!isset($next[count($found)-1]))
|
if (!isset($next[count($found)-1]))
|
||||||
{
|
{
|
||||||
if ($this->debug) echo "<p>Nothing found, exiting !!!</p>\n";
|
if ($this->debug) echo "<p>Nothing found, exiting !!!</p>\n";
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
$next = $next[count($found)-1];
|
$next = $nexts[count($found)-1];
|
||||||
$over = $found[$next];
|
$over = $found[$next];
|
||||||
unset($found[$next]);
|
unset($found[$next]);
|
||||||
if ($this->debug) echo "<p>Have to try the next $next, $u's are over for $next=$over !!!</p>\n";
|
if ($this->debug) echo "<p>Have to try the next $next, $u's are over for $next=$over !!!</p>\n";
|
||||||
@ -341,7 +342,7 @@ class asyncservice
|
|||||||
function last_check_run($semaphore=False,$release=False,$run_by='')
|
function last_check_run($semaphore=False,$release=False,$run_by='')
|
||||||
{
|
{
|
||||||
//echo "<p>last_check_run(semaphore=".($semaphore?'True':'False').",release=".($release?'True':'False').")</p>\n";
|
//echo "<p>last_check_run(semaphore=".($semaphore?'True':'False').",release=".($release?'True':'False').")</p>\n";
|
||||||
if ($exists = $this->read('##last-check-run##'))
|
if (($exists = $this->read('##last-check-run##')))
|
||||||
{
|
{
|
||||||
list(,$last_run) = each($exists);
|
list(,$last_run) = each($exists);
|
||||||
}
|
}
|
||||||
@ -379,7 +380,7 @@ class asyncservice
|
|||||||
if ($exists) $where = array('async_next=0 OR async_next<'.time()-600);
|
if ($exists) $where = array('async_next=0 OR async_next<'.time()-600);
|
||||||
}
|
}
|
||||||
//echo "last_run=<pre>"; print_r($last_run); echo "</pre>\n";
|
//echo "last_run=<pre>"; print_r($last_run); echo "</pre>\n";
|
||||||
return $this->write($last_run,!!$exits,$where) > 0;
|
return $this->write($last_run, !!$exists, $where) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -398,7 +399,7 @@ class asyncservice
|
|||||||
|
|
||||||
if (($jobs = $this->read()))
|
if (($jobs = $this->read()))
|
||||||
{
|
{
|
||||||
foreach($jobs as $id => $job)
|
foreach($jobs as $job)
|
||||||
{
|
{
|
||||||
// checking / setting up egw_info/user
|
// checking / setting up egw_info/user
|
||||||
//
|
//
|
||||||
@ -502,7 +503,16 @@ class asyncservice
|
|||||||
foreach($this->db->select($this->db_table,$cols,$where,__LINE__,__FILE__,$offset,$append,False,$num_rows) as $row)
|
foreach($this->db->select($this->db_table,$cols,$where,__LINE__,__FILE__,$offset,$append,False,$num_rows) as $row)
|
||||||
{
|
{
|
||||||
$row['async_times'] = json_php_unserialize($row['async_times']);
|
$row['async_times'] = json_php_unserialize($row['async_times']);
|
||||||
$row['async_data'] = json_php_unserialize($row['async_data'], true); // allow non-serialized data
|
// check for broken value during migration
|
||||||
|
if ($row['async_data'][0] == '"' && substr($row['async_data'], 0, 7) == '"\\"\\\\\\"')
|
||||||
|
{
|
||||||
|
$row['async_data'] = null;
|
||||||
|
$this->write(egw_db::strip_array_keys($row,'async_'), true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$row['async_data'] = json_php_unserialize($row['async_data'], true); // allow non-serialized data
|
||||||
|
}
|
||||||
$jobs[$row['async_id']] = egw_db::strip_array_keys($row,'async_');
|
$jobs[$row['async_id']] = egw_db::strip_array_keys($row,'async_');
|
||||||
}
|
}
|
||||||
if (!count($jobs))
|
if (!count($jobs))
|
||||||
@ -520,7 +530,7 @@ class asyncservice
|
|||||||
* @param array $where additional where statemetn to update only if a certain condition is met, used for the semaphore
|
* @param array $where additional where statemetn to update only if a certain condition is met, used for the semaphore
|
||||||
* @return int affected rows, can be 0 if an additional where statement is given
|
* @return int affected rows, can be 0 if an additional where statement is given
|
||||||
*/
|
*/
|
||||||
function write($job,$exists = False,$where=array())
|
function write($job, $exists = False, $where=array())
|
||||||
{
|
{
|
||||||
if (!is_a($this->db, 'egw_db')) return 0;
|
if (!is_a($this->db, 'egw_db')) return 0;
|
||||||
|
|
||||||
@ -529,16 +539,17 @@ class asyncservice
|
|||||||
'async_next' => $job['next'],
|
'async_next' => $job['next'],
|
||||||
'async_times' => json_encode($job['times']),
|
'async_times' => json_encode($job['times']),
|
||||||
'async_method' => $job['method'],
|
'async_method' => $job['method'],
|
||||||
'async_data' => json_encode($job['data']),
|
'async_data' => $job['data'] ? json_encode($job['data']) : null,
|
||||||
'async_account_id'=> $job['account_id'],
|
'async_account_id'=> $job['account_id'],
|
||||||
);
|
);
|
||||||
|
$where['async_id'] = $job['id'];
|
||||||
if ($exists)
|
if ($exists)
|
||||||
{
|
{
|
||||||
$this->db->update($this->db_table,$data,array('async_id' => $job['id']),__LINE__,__FILE__);
|
$this->db->update($this->db_table, $data, $where, __LINE__, __FILE__);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->db->insert($this->db_table,$data,array('async_id' => $job['id']),__LINE__,__FILE__);
|
$this->db->insert($this->db_table, $data, $where, __LINE__, __FILE__);
|
||||||
}
|
}
|
||||||
return $this->db->affected_rows();
|
return $this->db->affected_rows();
|
||||||
}
|
}
|
||||||
@ -562,7 +573,10 @@ class asyncservice
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$run = True;
|
else
|
||||||
|
{
|
||||||
|
$run = True;
|
||||||
|
}
|
||||||
|
|
||||||
if (substr(php_uname(), 0, 7) == "Windows")
|
if (substr(php_uname(), 0, 7) == "Windows")
|
||||||
{
|
{
|
||||||
@ -592,12 +606,12 @@ class asyncservice
|
|||||||
$webserver = posix_getpwuid(posix_getuid ());
|
$webserver = posix_getpwuid(posix_getuid ());
|
||||||
echo '<p>'.lang("You need to add the webserver user '%1' to the group '%2'.",$webserver['name'],$group['name'])."</p>\n"; }
|
echo '<p>'.lang("You need to add the webserver user '%1' to the group '%2'.",$webserver['name'],$group['name'])."</p>\n"; }
|
||||||
}
|
}
|
||||||
if ($fd = popen('/bin/sh -c "type -p '.$name.'"','r'))
|
if (($fd = popen('/bin/sh -c "type -p '.$name.'"','r')))
|
||||||
{
|
{
|
||||||
$this->$name = fgets($fd,256);
|
$this->$name = fgets($fd,256);
|
||||||
@pclose($fd);
|
@pclose($fd);
|
||||||
}
|
}
|
||||||
if ($pos = strpos($this->$name,"\n"))
|
if (($pos = strpos($this->$name,"\n")))
|
||||||
{
|
{
|
||||||
$this->$name = substr($this->$name,0,$pos);
|
$this->$name = substr($this->$name,0,$pos);
|
||||||
}
|
}
|
||||||
@ -641,6 +655,7 @@ class asyncservice
|
|||||||
$this->other_cronlines = array();
|
$this->other_cronlines = array();
|
||||||
if (($crontab = popen('/bin/sh -c "'.$this->crontab.' -l" 2>&1','r')) !== False)
|
if (($crontab = popen('/bin/sh -c "'.$this->crontab.' -l" 2>&1','r')) !== False)
|
||||||
{
|
{
|
||||||
|
$n = 0;
|
||||||
while ($line = fgets($crontab,256))
|
while ($line = fgets($crontab,256))
|
||||||
{
|
{
|
||||||
if ($this->debug) echo 'line '.++$n.": $line<br>\n";
|
if ($this->debug) echo 'line '.++$n.": $line<br>\n";
|
||||||
|
Loading…
Reference in New Issue
Block a user