wip process
This commit is contained in:
parent
64fcacb013
commit
85ee4724ee
|
|
@ -2,22 +2,19 @@
|
||||||
|
|
||||||
namespace App\Jobs;
|
namespace App\Jobs;
|
||||||
|
|
||||||
use App\Enums\Status;
|
|
||||||
use App\Livewire\Projects\Tabs\Mosaic;
|
|
||||||
use App\Models\Project;
|
use App\Models\Project;
|
||||||
use App\Models\ProjectDownload;
|
|
||||||
use App\Models\ProjectMosaic;
|
use App\Models\ProjectMosaic;
|
||||||
use App\Models\ProjectReport;
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Bus\Batchable;
|
use Illuminate\Bus\Batchable;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Contracts\Queue\ShouldBeUnique;
|
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Foundation\Bus\Dispatchable;
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
use Illuminate\Process\Exceptions\ProcessFailedException;
|
use Illuminate\Process\Exceptions\ProcessFailedException;
|
||||||
|
use Illuminate\Process\Exceptions\ProcessTimedOutException;
|
||||||
use Illuminate\Queue\InteractsWithQueue;
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
use Illuminate\Queue\SerializesModels;
|
use Illuminate\Queue\SerializesModels;
|
||||||
use Symfony\Component\Process\Process;
|
use Symfony\Component\Process\Process;
|
||||||
|
use Illuminate\Support\Facades\Process as ProcessNew;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -41,9 +38,9 @@ public function __construct(ProjectMosaic $mosaic)
|
||||||
/**
|
/**
|
||||||
* Execute the job.
|
* Execute the job.
|
||||||
*/
|
*/
|
||||||
public function handle(): void
|
public function handleNew(): void
|
||||||
{
|
{
|
||||||
$weeksAgo = ProjectReport::weeksAgoForYearAndWeek($this->mosaic->year, $this->mosaic->week);
|
//$weeksAgo = ProjectReport::weeksAgoForYearAndWeek($this->mosaic->year, $this->mosaic->week);
|
||||||
|
|
||||||
//TODO change to end_date and offset
|
//TODO change to end_date and offset
|
||||||
|
|
||||||
|
|
@ -51,7 +48,8 @@ public function handle(): void
|
||||||
|
|
||||||
$command = [
|
$command = [
|
||||||
sprintf('%sbuild_mosaic.sh', $projectFolder),
|
sprintf('%sbuild_mosaic.sh', $projectFolder),
|
||||||
sprintf('--weeks_ago=%s', $weeksAgo),
|
sprintf('--end_date=%s', $this->mosaic->end_date),
|
||||||
|
sprintf('--offset=%s', $this->mosaic->offset),
|
||||||
sprintf('--data_dir=%s', $this->mosaic->project->download_path),
|
sprintf('--data_dir=%s', $this->mosaic->project->download_path),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -62,7 +60,6 @@ public function handle(): void
|
||||||
$process->setEnv(['PATH' => $currentPath.':/usr/local/Cellar/pandoc/3.1.8/bin/pandoc']);
|
$process->setEnv(['PATH' => $currentPath.':/usr/local/Cellar/pandoc/3.1.8/bin/pandoc']);
|
||||||
// $process->setTimeout(36000); // stel een geschikte timeout in
|
// $process->setTimeout(36000); // stel een geschikte timeout in
|
||||||
$process->start();
|
$process->start();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$myOutput = [];
|
$myOutput = [];
|
||||||
$process->wait(function ($type, $buffer) use (&$myOutput) {
|
$process->wait(function ($type, $buffer) use (&$myOutput) {
|
||||||
|
|
@ -80,6 +77,40 @@ public function handle(): void
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the job.
|
||||||
|
*/
|
||||||
|
public function handle(): void
|
||||||
|
{
|
||||||
|
//$weeksAgo = ProjectReport::weeksAgoForYearAndWeek($this->mosaic->year, $this->mosaic->week);
|
||||||
|
|
||||||
|
|
||||||
|
$projectFolder = base_path('../');
|
||||||
|
|
||||||
|
$command = [
|
||||||
|
sprintf('%sbuild_mosaic.sh', $projectFolder),
|
||||||
|
sprintf('--end_date=%s', $this->mosaic->end_date),
|
||||||
|
sprintf('--offset=%s', $this->mosaic->offset),
|
||||||
|
sprintf('--data_dir=%s', $this->mosaic->project->download_path),
|
||||||
|
];
|
||||||
|
$currentPath = '/usr/bin:/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin/Users/mfolkerts/anaconda3/bin:/Library/Apple/usr/bin';
|
||||||
|
|
||||||
|
try{
|
||||||
|
$process = ProcessNew::timeout(220)
|
||||||
|
->env(['PATH' => $currentPath . ':/usr/local/Cellar/pandoc/3.1.8/bin/pandoc'])
|
||||||
|
->start($command, function (string $type, string $output ) {
|
||||||
|
logger($output);
|
||||||
|
});
|
||||||
|
$results = $process->wait();
|
||||||
|
if($results->successful()){
|
||||||
|
$this->mosaic->setStatusSuccess();
|
||||||
|
}
|
||||||
|
}catch(\RuntimeException|ProcessTimedOutException|ProcessFailedException $e){
|
||||||
|
echo $e->getMessage();
|
||||||
|
$this->mosaic->setStatusFailed();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// public static function handleFor(Project $project, $year, $startWeekNumber)
|
// public static function handleFor(Project $project, $year, $startWeekNumber)
|
||||||
// {
|
// {
|
||||||
// logger("ProjectMosiacGeneratorJob::handleFor(week $startWeekNumber, year $year)");
|
// logger("ProjectMosiacGeneratorJob::handleFor(week $startWeekNumber, year $year)");
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
use Illuminate\Contracts\Validation\Rule;
|
use Illuminate\Contracts\Validation\Rule;
|
||||||
use App\Models\Project;
|
use App\Models\Project;
|
||||||
use App\Models\ProjectReport;
|
use App\Models\ProjectReport;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
class AllMosaicsPresentRule implements Rule
|
class AllMosaicsPresentRule implements Rule
|
||||||
{
|
{
|
||||||
|
|
@ -27,10 +28,7 @@ public function passes($attribute, $value)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $project->allMosaicsPresent(
|
return $project->allMosaicsPresent(new Carbon($value['end_date']));
|
||||||
// TODO change with end_date.
|
|
||||||
$value['end_date']
|
|
||||||
);
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$this->errorMessage = $e->getMessage();
|
$this->errorMessage = $e->getMessage();
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue