1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2025-12-14 06:54:04 +00:00

fix phpstan errors

This commit is contained in:
Samuel Štancl 2024-08-06 04:35:25 +02:00
parent 18a16e6a74
commit 4372e1bef2
20 changed files with 105 additions and 16 deletions

View file

@ -13,14 +13,14 @@ trait ParallelCommand
{
public const MAX_PROCESSES = 24;
abstract protected function childHandle(...$args): bool;
abstract protected function childHandle(mixed ...$args): bool;
public function addProcessesOption(): void
{
$this->addOption('processes', 'p', InputOption::VALUE_OPTIONAL, 'How many processes to spawn. Maximum value: ' . static::MAX_PROCESSES . ', recommended value: core count', 1);
}
protected function forkProcess(...$args): int
protected function forkProcess(mixed ...$args): int
{
$pid = pcntl_fork();
@ -53,14 +53,25 @@ trait ParallelCommand
return $processes;
}
/**
* @return Collection<int, Collection<int, \Stancl\Tenancy\Contracts\Tenant&\Illuminate\Database\Eloquent\Model>>>
*/
protected function getTenantChunks(): Collection
{
$idCol = tenancy()->model()->getTenantKeyName();
$tenants = tenancy()->model()->orderBy($idCol, 'asc')->pluck($idCol);
return $tenants->chunk(ceil($tenants->count() / $this->getProcesses()));
return $tenants->chunk((int) ceil($tenants->count() / $this->getProcesses()))->map(function ($chunk) {
$chunk = array_values($chunk->all());
/** @var Collection<int, \Stancl\Tenancy\Contracts\Tenant&\Illuminate\Database\Eloquent\Model> $chunk */
return $chunk;
});
}
/**
* @param array|ArrayAccess<int, mixed>|null $args
*/
protected function runConcurrently(array|ArrayAccess|null $args = null): int
{
$processes = $this->getProcesses();