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\EsiScope;
use App\Models\EsiToken; use App\Models\EsiToken;
use App\Models\Structure; use App\Models\Structure;
use App\Models\ScheduleJob;
use Carbon\Carbon;
class CorpJournal extends Command class CorpJournal extends Command
{ {
@@ -46,6 +49,13 @@ class CorpJournal extends Command
*/ */
public function handle() 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 //Setup the Finances Container
$finance = new Finances(); $finance = new Finances();
//Get the corps with structures logged in the database //Get the corps with structures logged in the database
@@ -56,6 +66,10 @@ class CorpJournal extends Command
$this->GetJournal($structure->character_id); $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) { private function GetJournal($charId) {

View File

@@ -4,14 +4,19 @@ namespace App\Console\Commands;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use DB;
use App\Models\AllianceCorp; use App\Models\AllianceCorp;
use App\Models\ScheduleJob;
use Carbon\Carbon;
use Seat\Eseye\Cache\NullCache; use Seat\Eseye\Cache\NullCache;
use Seat\Eseye\Configuration; use Seat\Eseye\Configuration;
use Seat\Eseye\Containers\EsiAuthentication; use Seat\Eseye\Containers\EsiAuthentication;
use Seat\Eseye\Eseye; use Seat\Eseye\Eseye;
class getCorps extends Command class GetCorps extends Command
{ {
/** /**
* The name and signature of the console command. * The name and signature of the console command.
@@ -44,6 +49,13 @@ class getCorps extends Command
*/ */
public function handle() 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 //Set the parameters for ESI
$configuration = Configuration::getInstance(); $configuration = Configuration::getInstance();
$configuration->logfile_location = 'var/www/w4rpservices/storage/logs/eseye'; $configuration->logfile_location = 'var/www/w4rpservices/storage/logs/eseye';
@@ -72,5 +84,10 @@ class getCorps extends Command
$entry->name = $corpInfo->name; $entry->name = $corpInfo->name;
$entry->save(); $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) protected function schedule(Schedule $schedule)
{ {
$schedule->command(CorpJournal::class)->everyFifteenMinutes(); $schedule->command(CorpJournal::class)->everyFifteenMinutes();
// $schedule->command(getCorps)->daily(); //$schedule->command(GetCorps::class)->daily();
// $schedule->command('inspire')
// ->hourly();
} }
/** /**

View File

@@ -48,7 +48,7 @@ class FinancesController extends Controller
//Get the taxes for the corporation //Get the taxes for the corporation
$taxes = DB::table('CorpJournals') $taxes = DB::table('CorpJournals')
->where(['corporation_id'=> $corpId, 'ref_type' => 'brokers_fee']) ->where(['corporation_id'=> $corpId, 'ref_type' => 'brokers_fee'])
->whereBetween($start, $end) ->whereBetween(['dateTime' => $start, 'dateTime' => $end])
->get(); ->get();
foreach($taxes as $tax) { foreach($taxes as $tax) {
$totalTax += $tax->amount; $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); $baseDir = dirname($vendorDir);
return array( return array(
'App\\Console\\Commands\\corpJournal' => $baseDir . '/app/Console/Commands/corpJournal.php', 'App\\Console\\Commands\\CorpJournal' => $baseDir . '/app/Console/Commands/corpJournal.php',
'App\\Console\\Commands\\getCorps' => $baseDir . '/app/Console/Commands/getCorps.php', 'App\\Console\\Commands\\GetCorps' => $baseDir . '/app/Console/Commands/getCorps.php',
'App\\Console\\Commands\\sendMail' => $baseDir . '/app/Console/Commands/sendmail.php', 'App\\Console\\Commands\\sendMail' => $baseDir . '/app/Console/Commands/sendmail.php',
'App\\Console\\Kernel' => $baseDir . '/app/Console/Kernel.php', 'App\\Console\\Kernel' => $baseDir . '/app/Console/Kernel.php',
'App\\Exceptions\\Handler' => $baseDir . '/app/Exceptions/Handler.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\\FinancesController' => $baseDir . '/app/Http/Controllers/FinancesController.php',
'App\\Http\\Controllers\\FleetsController' => $baseDir . '/app/Http/Controllers/FleetsController.php', 'App\\Http\\Controllers\\FleetsController' => $baseDir . '/app/Http/Controllers/FleetsController.php',
'App\\Http\\Controllers\\MoonsController' => $baseDir . '/app/Http/Controllers/MoonsController.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\\Controllers\\WikiController' => $baseDir . '/app/Http/Controllers/WikiController.php',
'App\\Http\\Kernel' => $baseDir . '/app/Http/Kernel.php', 'App\\Http\\Kernel' => $baseDir . '/app/Http/Kernel.php',
'App\\Http\\Middleware\\Authenticate' => $baseDir . '/app/Http/Middleware/Authenticate.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\\TrimStrings' => $baseDir . '/app/Http/Middleware/TrimStrings.php',
'App\\Http\\Middleware\\TrustProxies' => $baseDir . '/app/Http/Middleware/TrustProxies.php', 'App\\Http\\Middleware\\TrustProxies' => $baseDir . '/app/Http/Middleware/TrustProxies.php',
'App\\Http\\Middleware\\VerifyCsrfToken' => $baseDir . '/app/Http/Middleware/VerifyCsrfToken.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\\Finances' => $baseDir . '/app/Library/Finances.php',
'App\\Library\\Fleet' => $baseDir . '/app/Library/Fleet.php', 'App\\Library\\Fleet' => $baseDir . '/app/Library/Fleet.php',
'App\\Library\\Mail' => $baseDir . '/app/Library/Mail.php', 'App\\Library\\Mail' => $baseDir . '/app/Library/Mail.php',
'App\\Library\\MoonCalc' => $baseDir . '/app/Library/MoonCalc.php', 'App\\Library\\MoonCalc' => $baseDir . '/app/Library/MoonCalc.php',
'App\\Library\\MoonMine' => $baseDir . '/app/Library/MoonMine.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\\AllianceCorp' => $baseDir . '/app/Models/AllianceCorp.php',
'App\\Models\\Config' => $baseDir . '/app/Models/Config.php', 'App\\Models\\Config' => $baseDir . '/app/Models/Config.php',
'App\\Models\\CorpJournal' => $baseDir . '/app/Models/CorpJournal.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\\DokuGroupNames' => $baseDir . '/app/Models/DokuGroupNames.php',
'App\\Models\\DokuMember' => $baseDir . '/app/Models/DokuMember.php', 'App\\Models\\DokuMember' => $baseDir . '/app/Models/DokuMember.php',
'App\\Models\\DokuUser' => $baseDir . '/app/Models/DokuUser.php', 'App\\Models\\DokuUser' => $baseDir . '/app/Models/DokuUser.php',

View File

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