44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
use App\Jobs\GeocodeEventLocations;
 | 
						|
use App\Jobs\SyncSubscriptionsDispatcher;
 | 
						|
use Illuminate\Console\Scheduling\Schedule;
 | 
						|
use Illuminate\Foundation\Application;
 | 
						|
use Illuminate\Foundation\Configuration\Exceptions;
 | 
						|
use Illuminate\Foundation\Configuration\Middleware;
 | 
						|
 | 
						|
return Application::configure(basePath: dirname(__DIR__))
 | 
						|
 | 
						|
    ->withRouting(
 | 
						|
        web: __DIR__.'/../routes/web.php',
 | 
						|
        commands: __DIR__.'/../routes/console.php',
 | 
						|
        health: '/up',
 | 
						|
    )
 | 
						|
 | 
						|
    ->withMiddleware(function (Middleware $middleware): void {
 | 
						|
        //
 | 
						|
    })
 | 
						|
 | 
						|
    ->withSchedule(function (Schedule $schedule) {
 | 
						|
        // subscription sync
 | 
						|
        $schedule->job(new SyncSubscriptionsDispatcher)
 | 
						|
                 ->everyTenMinutes()
 | 
						|
                 ->withoutOverlapping()
 | 
						|
                 ->onOneServer();
 | 
						|
        // geocode missing events (every 10 mins, avoid overlap, keep jobs on one server if we scale)
 | 
						|
        $schedule->job(new GeocodeEventLocations)
 | 
						|
                 ->everyTenMinutes()
 | 
						|
                 ->withoutOverlapping()
 | 
						|
                 ->onOneServer();
 | 
						|
        // horizon metrics snapshot
 | 
						|
        $schedule->command('horizon:snapshot')
 | 
						|
                 ->everyFiveMinutes()
 | 
						|
                 ->onOneServer();
 | 
						|
    })
 | 
						|
 | 
						|
    ->withExceptions(function (Exceptions $exceptions): void {
 | 
						|
        //
 | 
						|
    })
 | 
						|
 | 
						|
    ->create();
 |