Wpis z mikrobloga

Spotkał się ktoś z czymś takim w #laravel ?

Task ustawiony tak:

$schedule->command('snapshots:revenue')
everyFiveMinutes()->appendOutputTo(storage_path('logs/laravel.log'))->withoutOverlapping();

A w logach:
[2020-04-05 14:10:29] [info] {"command":"snapshots:revenue"} - Creating revenue data snapshot
[2020-04-05 14:10:32] [info] {"command":"snapshots:revenue"} - Finished revenue data snapshot
[2020-04-05 14:14:44] [info] {"command":"snapshots:revenue"} - Creating revenue data snapshot
[2020-04-05 14:14:47] [info] {"command":"snapshots:revenue"} - Finished revenue data snapshot
[2020-04-05 14:15:22] [info] {"command":"snapshots:revenue"} - Creating revenue data snapshot
[2020-04-05 14:15:25] [info] {"command":"snapshots:revenue"} - Finished revenue data snapshot

artisan schedule:run jest triggerowany z crona co minutę

Każdego dnia odpierdziela taki sam szajs o tych samych godzinach, kilka razy dziennie, pomysły?

#php #programowanie #devops
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kucyk: może coś z tym withoutOverlapping()? Masz włączony cache? Bez tego nie zadziała.

Dodatkowo skoro zadanie i tak ma się uruchamiać co 5 minut to ustaw withoutOverlapping(5).
  • Odpowiedz
withoutOverlapping


@nowiutki: ustawię to 5 i zobaczę, ale one nie wchodzą na siebie ... a cache to chyba jak task uruchamia więcej niż jeden serwer
  • Odpowiedz
a cache to chyba jak task uruchamia więcej niż jeden serwer


@kucyk: chyba nie. WithoutOverlapping polega na tym że tworzony jest mutex, który zapisywany jest np. do redisa. Sprawdź sobie klasę Illuminate\Console\Scheduling\CacheEventMutex
  • Odpowiedz