Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Task funktioniert nur manuell
#1
Hallo Community,
ich habe eine Task geschrieben,
die bei Ausführen durch den Button
"Diese Aufgabe jetzt ausführen" ohne Probleme funktioniert.

Wenn allerdings das Skript durch die Zeitplanung ausgeführt wird,
wird zwar im Task-Log vermerkt, dass die Task ausgeführt wurde
aber die Arbeit der Task wurde nicht ausgeführt.
Wie kann das sein!?!?

Hier mal der Code der Task:
PHP-Code:
<?php
function task_autoGelberDaumen($task) {
global 
$db$mybb;
require_once(
"/usr/www/users/xinvvnix/forum/inc/datahandlers/post.php");

//Konfiguration:
$progfid1=array(11); //FID Programmüberforum 7 Tage
$progfid2=array(10,13); //FID Programmüberforum 14 Tage

$checktime=7//Zeit in Tagen, ab wann gepostet wird, dass kein Update vorhanden ist.
$postmessage="[iconge]";

//Funktionen:
function sendPost($message,$forumid,$threadid,$db){
$posthandler = new PostDataHandler("insert");
$userarray=get_user($uid);
$new_post = array(
"tid" => $threadid//1468
"fid" => $forumid//134
"subject" => "",
"icon" => 36,
"uid" => 1,
"username" => "Nummer1",
"dateline" => TIME_NOW,
"message" => $message,
"ipaddress" => ""
);
$new_post['options']=array(
"signature" => 1,
"subscriptionmethod" => 0,
"disablesmilies" => 0
);
$posthandler->set_data($new_post);
$valid_post $posthandler->validate_post();
$posthandler->insert_post();
}

function 
zwischenstring ($start$ende$string) {
 return reset (explode ($endeend (explode ($start$string))));
}


//Get all threads with link to azthread
$progthreadids=array(); $firstposts=array(); $forumsids=array();
$querytext="SELECT DISTINCT pid,tid,fid,message FROM mybb_posts WHERE message like '%\[azb=%\]%'  
AND pid IN (SELECT firstpost FROM mybb_threads WHERE icon=29 AND fid IN ("
.implode(","$progfid1).",".implode(",",$progfid2)."))";


$query $db->query($querytext);
while(
$result $db->fetch_array($query)){
//Zeit in datetime Format umrechnen
$checktimen=TIME_NOW - ($checktime 24 60 60);

//auf String für auszahlungsthread prüfen
$temptid=zwischenstring("[azb=","]",$result['message']);

//checken ob 7 oder 14 Tage
if(in_array($result['fid'],$progfid2)) $checktimen=TIME_NOW - ($checktime 24 60 60);

$query2 $db->simple_select("threads""tid""lastpost<$checktimen AND tid=$temptid", array("order_dir" => 'DESC',"limit" => 1));

if(
$db->num_rows($query2)>&& is_numeric ($temptid)) {

$progthreadids[]=(int)$result['tid']; 
$firstposts[]=(int)$result['pid'];
$forumsids[]=(int)$result['fid'];
}
}
for(
$i=0;$i<count($progthreadids);$i++){
$db->update_query("threads",array('icon'=>36),"tid=$progthreadids[$i]");
$db->update_query("posts",array('icon'=>36),"pid=$firstposts[$i]");
sendPost($postmessage,$forumsids[$i],$progthreadids[$i],$db);

/*
echo $progthreadids[$i];
echo "  -  ";
echo $firstposts[$i];
echo "<br>";
*/
}

add_task_log($task"Auf zu alte Zahlungen gecheckt und gelbe Daumen verteilt.");
}
?>
Zitieren


Nachrichten in diesem Thema
Task funktioniert nur manuell - von cthulhu - 13.01.2017, 14:00
RE: Task funktioniert nur manuell - von StefanT - 13.01.2017, 14:18
RE: Task funktioniert nur manuell - von cthulhu - 13.01.2017, 14:21
RE: Task funktioniert nur manuell - von StefanT - 13.01.2017, 14:26

Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  "Task" > SQL-Befehl funktioniert nicht Gerti 7 2.653 30.11.2020, 17:59
Letzter Beitrag: Gerti