تعریف کار در routes/console.php یا app/Console/Kernel.php بهتنهایی آن را اجرا نمیکند. سرور باید هر دقیقه این را صدا بزند:
php artisan schedule:run
مسیر php و مسیر پروژه باید مال همان سرور باشد. کرونی که با کاربر دیگری یا مسیر محلی شما نوشته شده، روی سرور هیچ اثری ندارد.
وقتی کرون هست ولی کار انجام نمیشود
- منطقه زمانی برنامه با زمانی که انتظار دارید یکی نیست
withoutOverlappingبهخاطر یک قفل جا مانده، اجرای بعدی را رد میکند- کار در صف گذاشته شده و worker صف روشن نیست؛ زمانبند فقط job را ساخته
- خروجی دستور را جایی لاگ نکردهاید و خطا را نمیبینید
اول خروجی دستی php artisan schedule:run را روی خود سرور ببینید. اگر دستی کار کرد و خودکار نه، مشکل در crontab است نه در کد زمانبند.
اگر روی پروژه بالا نمیآید، در صفحه رفع خطاهای Laravel بنویسید کدام دستور باید کی اجرا شود.