scheduled jobs

This commit is contained in:
2018-11-23 01:23:50 -06:00
parent b6c93c81e0
commit 05b8e67648
8 changed files with 101 additions and 9 deletions

View File

@@ -12,6 +12,9 @@ use App\Library\Esi;
use App\Models\EsiScope;
use App\Models\EsiToken;
use App\Models\Structure;
use App\Models\ScheduleJob;
use Carbon\Carbon;
class CorpJournal extends Command
{
@@ -46,6 +49,13 @@ class CorpJournal extends Command
*/
public function handle()
{
//Add an entry into the jobs table
$job = new ScheduleJob;
$time = Carbon::now();
$job->name = 'CorpJournal';
$job->state = 'Starting';
$job->system_time = $time;
$job->save();
//Setup the Finances Container
$finance = new Finances();
//Get the corps with structures logged in the database
@@ -56,6 +66,10 @@ class CorpJournal extends Command
$this->GetJournal($structure->character_id);
}
//Mark the job as finished
DB::table('schedule_jobs')->where('system_time', $time)->update([
'job_state' => 'Finished',
]);
}
private function GetJournal($charId) {

View File

@@ -4,14 +4,19 @@ namespace App\Console\Commands;
use Illuminate\Console\Command;
use DB;
use App\Models\AllianceCorp;
use App\Models\ScheduleJob;
use Carbon\Carbon;
use Seat\Eseye\Cache\NullCache;
use Seat\Eseye\Configuration;
use Seat\Eseye\Containers\EsiAuthentication;
use Seat\Eseye\Eseye;
class getCorps extends Command
class GetCorps extends Command
{
/**
* The name and signature of the console command.
@@ -44,6 +49,13 @@ class getCorps extends Command
*/
public function handle()
{
//Add an entry into the jobs table
$job = new ScheduleJob;
$time = Carbon::now();
$job->job_name = 'GetCorps';
$job->job_state = 'Starting';
$job->system_time = $time;
$job->save();
//Set the parameters for ESI
$configuration = Configuration::getInstance();
$configuration->logfile_location = 'var/www/w4rpservices/storage/logs/eseye';
@@ -72,5 +84,10 @@ class getCorps extends Command
$entry->name = $corpInfo->name;
$entry->save();
}
//If the job is finished we need to mark it in the table
DB::table('schedule_jobs')->where('system_time', $time)->update([
'job_state' => 'Finished',
]);
}
}

View File

@@ -27,9 +27,7 @@ class Kernel extends ConsoleKernel
protected function schedule(Schedule $schedule)
{
$schedule->command(CorpJournal::class)->everyFifteenMinutes();
// $schedule->command(getCorps)->daily();
// $schedule->command('inspire')
// ->hourly();
//$schedule->command(GetCorps::class)->daily();
}
/**

View File

@@ -48,7 +48,7 @@ class FinancesController extends Controller
//Get the taxes for the corporation
$taxes = DB::table('CorpJournals')
->where(['corporation_id'=> $corpId, 'ref_type' => 'brokers_fee'])
->whereBetween($start, $end)
->whereBetween(['dateTime' => $start, 'dateTime' => $end])
->get();
foreach($taxes as $tax) {
$totalTax += $tax->amount;

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ScheduleJob extends Model
{
protected $table = 'schedule_jobs';
public $timestamps = true;
public $primaryKey = 'id';
protected $fillable = [
'job_name',
'job_state',
];
}

View File

@@ -0,0 +1,36 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateScheduleJobs extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
if(!Schema::hasTable('schedule_jobs')) {
Schema::create('schedule_jobs', function(Blueprint $table) {
$table->increments('id');
$table->string('job_name');
$table->string('job_state');
$table->dateTime('system_time');
$table->timestamps();
});
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('schedule_jobs');
}
}

View File

@@ -6,8 +6,8 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'App\\Console\\Commands\\corpJournal' => $baseDir . '/app/Console/Commands/corpJournal.php',
'App\\Console\\Commands\\getCorps' => $baseDir . '/app/Console/Commands/getCorps.php',
'App\\Console\\Commands\\CorpJournal' => $baseDir . '/app/Console/Commands/corpJournal.php',
'App\\Console\\Commands\\GetCorps' => $baseDir . '/app/Console/Commands/getCorps.php',
'App\\Console\\Commands\\sendMail' => $baseDir . '/app/Console/Commands/sendmail.php',
'App\\Console\\Kernel' => $baseDir . '/app/Console/Kernel.php',
'App\\Exceptions\\Handler' => $baseDir . '/app/Exceptions/Handler.php',
@@ -23,6 +23,7 @@ return array(
'App\\Http\\Controllers\\FinancesController' => $baseDir . '/app/Http/Controllers/FinancesController.php',
'App\\Http\\Controllers\\FleetsController' => $baseDir . '/app/Http/Controllers/FleetsController.php',
'App\\Http\\Controllers\\MoonsController' => $baseDir . '/app/Http/Controllers/MoonsController.php',
'App\\Http\\Controllers\\RegisterStructureController' => $baseDir . '/app/Http/Controllers/RegisterStructureController.php',
'App\\Http\\Controllers\\WikiController' => $baseDir . '/app/Http/Controllers/WikiController.php',
'App\\Http\\Kernel' => $baseDir . '/app/Http/Kernel.php',
'App\\Http\\Middleware\\Authenticate' => $baseDir . '/app/Http/Middleware/Authenticate.php',
@@ -34,14 +35,17 @@ return array(
'App\\Http\\Middleware\\TrimStrings' => $baseDir . '/app/Http/Middleware/TrimStrings.php',
'App\\Http\\Middleware\\TrustProxies' => $baseDir . '/app/Http/Middleware/TrustProxies.php',
'App\\Http\\Middleware\\VerifyCsrfToken' => $baseDir . '/app/Http/Middleware/VerifyCsrfToken.php',
'App\\Library\\Esi' => $baseDir . '/app/Library/Esi.php',
'App\\Library\\Finances' => $baseDir . '/app/Library/Finances.php',
'App\\Library\\Fleet' => $baseDir . '/app/Library/Fleet.php',
'App\\Library\\Mail' => $baseDir . '/app/Library/Mail.php',
'App\\Library\\MoonCalc' => $baseDir . '/app/Library/MoonCalc.php',
'App\\Library\\MoonMine' => $baseDir . '/app/Library/MoonMine.php',
'App\\Library\\SeatHelper' => $baseDir . '/app/Library/SeatHelper.php',
'App\\Models\\AllianceCorp' => $baseDir . '/app/Models/AllianceCorp.php',
'App\\Models\\Config' => $baseDir . '/app/Models/Config.php',
'App\\Models\\CorpJournal' => $baseDir . '/app/Models/CorpJournal.php',
'App\\Models\\CorpStructure' => $baseDir . '/app/Models/CorpStructure.php',
'App\\Models\\DokuGroupNames' => $baseDir . '/app/Models/DokuGroupNames.php',
'App\\Models\\DokuMember' => $baseDir . '/app/Models/DokuMember.php',
'App\\Models\\DokuUser' => $baseDir . '/app/Models/DokuUser.php',

View File

@@ -401,8 +401,8 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
);
public static $classMap = array (
'App\\Console\\Commands\\corpJournal' => __DIR__ . '/../..' . '/app/Console/Commands/corpJournal.php',
'App\\Console\\Commands\\getCorps' => __DIR__ . '/../..' . '/app/Console/Commands/getCorps.php',
'App\\Console\\Commands\\CorpJournal' => __DIR__ . '/../..' . '/app/Console/Commands/corpJournal.php',
'App\\Console\\Commands\\GetCorps' => __DIR__ . '/../..' . '/app/Console/Commands/getCorps.php',
'App\\Console\\Commands\\sendMail' => __DIR__ . '/../..' . '/app/Console/Commands/sendmail.php',
'App\\Console\\Kernel' => __DIR__ . '/../..' . '/app/Console/Kernel.php',
'App\\Exceptions\\Handler' => __DIR__ . '/../..' . '/app/Exceptions/Handler.php',
@@ -418,6 +418,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'App\\Http\\Controllers\\FinancesController' => __DIR__ . '/../..' . '/app/Http/Controllers/FinancesController.php',
'App\\Http\\Controllers\\FleetsController' => __DIR__ . '/../..' . '/app/Http/Controllers/FleetsController.php',
'App\\Http\\Controllers\\MoonsController' => __DIR__ . '/../..' . '/app/Http/Controllers/MoonsController.php',
'App\\Http\\Controllers\\RegisterStructureController' => __DIR__ . '/../..' . '/app/Http/Controllers/RegisterStructureController.php',
'App\\Http\\Controllers\\WikiController' => __DIR__ . '/../..' . '/app/Http/Controllers/WikiController.php',
'App\\Http\\Kernel' => __DIR__ . '/../..' . '/app/Http/Kernel.php',
'App\\Http\\Middleware\\Authenticate' => __DIR__ . '/../..' . '/app/Http/Middleware/Authenticate.php',
@@ -429,14 +430,17 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'App\\Http\\Middleware\\TrimStrings' => __DIR__ . '/../..' . '/app/Http/Middleware/TrimStrings.php',
'App\\Http\\Middleware\\TrustProxies' => __DIR__ . '/../..' . '/app/Http/Middleware/TrustProxies.php',
'App\\Http\\Middleware\\VerifyCsrfToken' => __DIR__ . '/../..' . '/app/Http/Middleware/VerifyCsrfToken.php',
'App\\Library\\Esi' => __DIR__ . '/../..' . '/app/Library/Esi.php',
'App\\Library\\Finances' => __DIR__ . '/../..' . '/app/Library/Finances.php',
'App\\Library\\Fleet' => __DIR__ . '/../..' . '/app/Library/Fleet.php',
'App\\Library\\Mail' => __DIR__ . '/../..' . '/app/Library/Mail.php',
'App\\Library\\MoonCalc' => __DIR__ . '/../..' . '/app/Library/MoonCalc.php',
'App\\Library\\MoonMine' => __DIR__ . '/../..' . '/app/Library/MoonMine.php',
'App\\Library\\SeatHelper' => __DIR__ . '/../..' . '/app/Library/SeatHelper.php',
'App\\Models\\AllianceCorp' => __DIR__ . '/../..' . '/app/Models/AllianceCorp.php',
'App\\Models\\Config' => __DIR__ . '/../..' . '/app/Models/Config.php',
'App\\Models\\CorpJournal' => __DIR__ . '/../..' . '/app/Models/CorpJournal.php',
'App\\Models\\CorpStructure' => __DIR__ . '/../..' . '/app/Models/CorpStructure.php',
'App\\Models\\DokuGroupNames' => __DIR__ . '/../..' . '/app/Models/DokuGroupNames.php',
'App\\Models\\DokuMember' => __DIR__ . '/../..' . '/app/Models/DokuMember.php',
'App\\Models\\DokuUser' => __DIR__ . '/../..' . '/app/Models/DokuUser.php',