Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

Chciałem założyć zadanie na IPB 3.0.5. Postępowałem wg. tego:

http://community.invisionpower.com/resources/documentation/index.html/_/developer-resources/adding-functionality/adding-tasks-r418

Zapisałem dokładnie taki plik jak w przykładzie jako admin\applications\core\tasks\mytask.php, założyłem zadanie w panelu i uruchomiłem.

Niestety nie chce działać cyklicznie. Uruchamia się raz, ikona w panelu jest niebieska i po jednokrotnym przejściu (są logi że uruchomienie było ok) ikona zmienia się na czerwoną (co jak rozumiem oznacza, że zadanie jest wyłączone). Jak sprawić by zadanie raz uruchomione powtarzało się cały czas. Inne zadania z systemu działają poprawnie.

Opublikowano (edytowane)

Tak. Na screenie przed_uruchomieniem.jpg widać, że task jest na niebiesko, ma ruszyć o zadanej porze. Mija dana godzina, task jakby nie może się wykonać, robi się czerwony (screen po_uruchomieniu.jpg). Dołączam ustawienia i dowód że inne taski się uruchamiają. Plik z zadaniem mytask.php ma atrybuty 777 (więc to nie problem z uprawnieniami) i wygląda jak w przykładzie:

<?php

class task_item

{

/**

* Constructor

*

* @access public

* @param object ipsRegistry reference

* @param object Parent task class

* @param array This task data

* @return void

*/

public function __construct( ipsRegistry $registry, $class, $task )

{

$this->registry = $registry;

$this->class = $class;

$this->task = $task;

}

/**

* Run this task

*

* @access public

* @return void

*/

public function runTask()

{

//-----------------------------------------

// Log to log table - modify but dont delete

//-----------------------------------------

$this->class->appendTaskLog( $this->task, 'Task ran' );

//-----------------------------------------

// Unlock Task: DO NOT MODIFY!

//-----------------------------------------

$this->class->unlockTask( $this->task );

}

}

Przy ręcznym uruchomieniu logi się dodają więc błędu w pliku też nie ma (recznie.jpg).

post-2326-064929400 1283959597_thumb.jpg

post-2326-026889300 1283959605_thumb.jpg

post-2326-022506800 1283959620_thumb.jpg

post-2326-083377400 1283959624_thumb.jpg

post-2326-062514100 1283959867_thumb.jpg

Edytowane przez assembler
Opublikowano (edytowane)

Dodałem. Niestety - efekt jest identyczny - zadanie się uruchamia raz, nie loguje niczego i robi się czerwona ikonka.

Edytowane przez assembler
Opublikowano (edytowane)

Proszę.

( Dodałem ZIP bo przy dodaniu XML działy się dziwne rzeczy;) chyba engine tego forum inaczej trakuje załączone XML )

task.zip

Edytowane przez assembler
Opublikowano (edytowane)

Uruchamiam to zadanie i jest OK..

Nie mniej zauważyłem, że wstawiłeś spację przed kodem:

<?php

w pliku mytask.php

Usuń ją proszę i sprawdź wtedy.

Tak samo - raz się uruchamia, czekamy 3 min, dochodzi do autouruchomienia i przełączenia na czerwono.

Wygląda to jakby task nie miał ustawionej wartości cyklicznego powtarzania. U Ciebie uruchamia i loguje się wiele razy?

Edytowane przez assembler
Opublikowano (edytowane)

Tego nie wiem, bo testuję to na localhoście, gdzie nie mam odwiedzin..

A jak masz w logach " 1. Narzędzia i ustawienia > 2. Log > 3. Wykonane zadania"?

Powinno być wiele wpisów "Task ran", a ja mam tylko jeden - ten z ręcznego uruchomienia.

Powiedz mi - a Ty gdzie to testujesz dokładnie?

Na lokalnym serwerze pod windows (apache) i na firmowym linuxa (też apache). W obu przypadkach jest tak samo.

Edytowane przez assembler
  • Manager
Opublikowano

Generalnie pytam czy testujesz na forum z ruchem - są ludzie, coś robią na serwerze.. Bo chyba wiesz, jak działają wbudowane zadania w IP.Board?

Jeśli chcesz to rozwiązać raz,a dobrze to dodaj te zadania do CRON-a.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano (edytowane)

Generalnie pytam czy testujesz na forum z ruchem - są ludzie, coś robią na serwerze.. Bo chyba wiesz, jak działają wbudowane zadania w IP.Board?

Jeśli chcesz to rozwiązać raz,a dobrze to dodaj te zadania do CRON-a.

Ruchu nie ma, bo są to serwery testowe (tylko dla mnie).

Ale właśnie nie wiem jak działają te zadania. Jakbyś mógł zapodać krótką informację albo link.

Wygląda na to, że będę musiał skorzystać z CRON, nie potrafię znaleźć przyczyny wyłączania się tego zadania.

Edytowane przez assembler
  • Manager
Opublikowano

Owe zadania to zwykłe skrpty PHP, które są jakby inicjowane przez ludzi - ludź wchodzi na forum, uruchamia się skrypt sprawdzający, czy są jakieś zadania do wykonania i jeśli tak to się uruchamiają.

To nie CRON, który jak wiesz, działa na powłoce ( ? ) i sam inicjuje zadania. Ze skryptem PHP tego zrobić się nie da.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano (edytowane)

Owe zadania to zwykłe skrpty PHP, które są jakby inicjowane przez ludzi - ludź wchodzi na forum, uruchamia się skrypt sprawdzający, czy są jakieś zadania do wykonania i jeśli tak to się uruchamiają.

To nie CRON, który jak wiesz, działa na powłoce ( ? ) i sam inicjuje zadania. Ze skryptem PHP tego zrobić się nie da.

Ok, to wszystko wyjaśnia. Spróbowałem właśnie "uruchomić" moje zadanie i w czasie dokładnie tej minuty na której było nastawione klikać jako użytkownik po forum. Wtedy zadanie faktycznie się uruchomiło.

Natomiast czerwona ikonka oznacza stan - że zadanie powinno się było uruchomić, ale jeszcze to się nie stało. Kiedy poczyni się jakąś aktywność na forum (ja dodawałem posty) zadanie się wykonuje, a ikona robi się niebieska.

Dzięki wielkie za pomoc.

Edytowane przez assembler
  • Manager
Opublikowano

Problem ROZWIĄZANY. Jeśli są jakiekolwiek wątpliwości, pytania proszę o założenie nowego tematu.

Wszelkie uzasadnione reklamacje/pretensje/sugestie/rady przyjmuje ekipa forum.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.