Merhabalar. İşveren iş yayınlıyor. Fakat favorilere gönder dediğinde o iş sadece favorilediği kişilerde gözüküyor ve favorilediği kişileri de fav_employee_id alanında array olarak tutuyorum. Favorilerde yayınlanan işlerde, eğer o işleri 2 saat içerisinde teklif gelmemişse (appointment_status 0'a eşitse) 2 saat sonra o işlerin atanan kişiler alanı yani fav_employee_id alaını null yapmasını istiyorum. CyberPanel kullanıyorum ve cron işini tanımlamama rağmen çalışmadı. Hata neyden kaynaklanabilir.
app/Console/Commands/RemoveFavEmployee.php dosyam şu şekilde;
class RemoveFavEmployee extends Command
{
protected $signature = 'jobs:remove-fav-employee';
protected $description = 'Remove fav_employee_id for jobs that have not been assigned within 2 hours';
public function __construct()
{
parent::__construct();
}
public function handle()
{
// Get jobs that were created more than 2 hours ago and haven't been assigned
$jobs = AppointmentCreate::where('appointment_status', 0)->where('created_at', '<', Carbon::now()->subHours(2))->get();
foreach ($jobs as $job) {
$job->update(['fav_employee_id' => null]);
}
$this->info('Fav employee removed for ' . count($jobs) . ' jobs');
}
}
app/Console/Kernel.php dosyam şu şekilde;
class Kernel extends ConsoleKernel
{
protected $commands = [
RemoveFavEmployee::class,
];
protected function schedule(Schedule $schedule)
{
$schedule->command('jobs:remove-fav-employee')->everyMinute();
}
protected function commands()
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
Cron işlemi ise şu şekilde;
Minute Hour Day of Month Month Day of Week
* * * * *
Command
cd /home/domain.com/public_html/ && php artisan schedule:run >> /dev/null 2>&1