mirror of https://github.com/pixelfed/pixelfed.git
commit
627be42b36
|
@ -43,15 +43,9 @@ class DecrementPostCount implements ShouldQueue
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($profile->updated_at && $profile->updated_at->lt(now()->subDays(30))) {
|
|
||||||
$profile->status_count = Status::whereProfileId($id)->whereNull(['in_reply_to_id', 'reblog_of_id'])->count();
|
|
||||||
$profile->save();
|
|
||||||
AccountService::del($id);
|
|
||||||
} else {
|
|
||||||
$profile->status_count = $profile->status_count ? $profile->status_count - 1 : 0;
|
$profile->status_count = $profile->status_count ? $profile->status_count - 1 : 0;
|
||||||
$profile->save();
|
$profile->save();
|
||||||
AccountService::del($id);
|
AccountService::del($id);
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ use App\{
|
||||||
};
|
};
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldBeUniqueUntilProcessing;
|
||||||
use Illuminate\Foundation\Bus\Dispatchable;
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
use Illuminate\Queue\InteractsWithQueue;
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
use Illuminate\Queue\SerializesModels;
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
@ -37,8 +38,9 @@ use App\Services\AccountService;
|
||||||
use App\Services\CollectionService;
|
use App\Services\CollectionService;
|
||||||
use App\Services\StatusService;
|
use App\Services\StatusService;
|
||||||
use App\Jobs\MediaPipeline\MediaDeletePipeline;
|
use App\Jobs\MediaPipeline\MediaDeletePipeline;
|
||||||
|
use App\Jobs\ProfilePipeline\DecrementPostCount;
|
||||||
|
|
||||||
class RemoteStatusDelete implements ShouldQueue
|
class RemoteStatusDelete implements ShouldQueue, ShouldBeUniqueUntilProcessing
|
||||||
{
|
{
|
||||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||||
|
|
||||||
|
@ -51,9 +53,35 @@ class RemoteStatusDelete implements ShouldQueue
|
||||||
*/
|
*/
|
||||||
public $deleteWhenMissingModels = true;
|
public $deleteWhenMissingModels = true;
|
||||||
|
|
||||||
public $timeout = 90;
|
public $tries = 3;
|
||||||
public $tries = 2;
|
public $maxExceptions = 3;
|
||||||
public $maxExceptions = 1;
|
public $timeout = 180;
|
||||||
|
public $failOnTimeout = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The number of seconds after which the job's unique lock will be released.
|
||||||
|
*
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
public $uniqueFor = 3600;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the unique ID for the job.
|
||||||
|
*/
|
||||||
|
public function uniqueId(): string
|
||||||
|
{
|
||||||
|
return 'status:remote:delete:' . $this->status->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the middleware the job should pass through.
|
||||||
|
*
|
||||||
|
* @return array<int, object>
|
||||||
|
*/
|
||||||
|
public function middleware(): array
|
||||||
|
{
|
||||||
|
return [(new WithoutOverlapping("status-remote-delete-{$this->status->id}"))->shared()->dontRelease()];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new job instance.
|
* Create a new job instance.
|
||||||
|
@ -62,7 +90,7 @@ class RemoteStatusDelete implements ShouldQueue
|
||||||
*/
|
*/
|
||||||
public function __construct(Status $status)
|
public function __construct(Status $status)
|
||||||
{
|
{
|
||||||
$this->status = $status;
|
$this->status = $status->withoutRelations();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -77,14 +105,10 @@ class RemoteStatusDelete implements ShouldQueue
|
||||||
if($status->deleted_at) {
|
if($status->deleted_at) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$profile = $this->status->profile;
|
|
||||||
|
|
||||||
StatusService::del($status->id, true);
|
StatusService::del($status->id, true);
|
||||||
|
|
||||||
if($profile->status_count && $profile->status_count > 0) {
|
DecrementPostCount::dispatch($status->profile_id)->onQueue('inbox');
|
||||||
$profile->status_count = $profile->status_count - 1;
|
|
||||||
$profile->save();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->unlinkRemoveMedia($status);
|
return $this->unlinkRemoveMedia($status);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue