Skip to content

Commit

Permalink
Fix parallel running: redis to kv storage (#27)
Browse files Browse the repository at this point in the history
  • Loading branch information
yatsenkolesh authored Aug 8, 2022
1 parent 98da290 commit f0674e1
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 24 deletions.
15 changes: 7 additions & 8 deletions src/DB/Managers/ParallelRunningStateManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,26 @@

namespace Abrouter\Client\DB\Managers;

use Abrouter\Client\Config\Accessors\KvStorageConfigAccessor;
use Abrouter\Client\DB\Dictionary\ParallelRunningDictionary;
use Abrouter\Client\DB\RedisConnection;
use Abrouter\Client\DB\Repositories\ParallelRunningStateCachedRepository;

class ParallelRunningStateManager
{
private RedisConnection $redisConnection;

private ParallelRunningStateCachedRepository $parallelRunningStateCachedRepository;
private KvStorageConfigAccessor $kvStorageConfigAccessor;

public function __construct(
RedisConnection $redisConnection,
KvStorageConfigAccessor $kvStorageConfigAccessor,
ParallelRunningStateCachedRepository $parallelRunningStateCachedRepository
) {
$this->redisConnection = $redisConnection;
$this->kvStorageConfigAccessor = $kvStorageConfigAccessor;
$this->parallelRunningStateCachedRepository = $parallelRunningStateCachedRepository;
}

public function setReadyToServe()
{
$this->redisConnection->getConnection()->set(
$this->kvStorageConfigAccessor->getKvStorage()->put(
ParallelRunningDictionary::IS_RUNNING_KEY,
ParallelRunningDictionary::IS_RUNNING_VALUE_TRUE
);
Expand All @@ -33,7 +32,7 @@ public function setReadyToServe()

public function setStopServing()
{
$this->redisConnection->getConnection()->set(
$this->kvStorageConfigAccessor->getKvStorage()->put(
ParallelRunningDictionary::IS_RUNNING_KEY,
ParallelRunningDictionary::IS_RUNNING_VALUE_STOPPED
);
Expand All @@ -42,7 +41,7 @@ public function setStopServing()

public function setInitialized()
{
$this->redisConnection->getConnection()->set(
$this->kvStorageConfigAccessor->getKvStorage()->put(
ParallelRunningDictionary::IS_INITIAZLIED_KEY,
ParallelRunningDictionary::IS_INITIAZLIED_TRUE_VALUE
);
Expand Down
12 changes: 6 additions & 6 deletions src/DB/Repositories/ParallelRunningStateRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,27 @@

namespace Abrouter\Client\DB\Repositories;

use Abrouter\Client\Config\Accessors\KvStorageConfigAccessor;
use Abrouter\Client\DB\Dictionary\ParallelRunningDictionary;
use Abrouter\Client\DB\RedisConnection;

class ParallelRunningStateRepository
{
private RedisConnection $redisConnection;
private KvStorageConfigAccessor $kvStorage;

public function __construct(RedisConnection $redisConnection)
public function __construct(KvStorageConfigAccessor $kvStorageConfigAccessor)
{
$this->redisConnection = $redisConnection;
$this->kvStorage = $kvStorageConfigAccessor;
}

public function isInitialized(): bool
{
$value = $this->redisConnection->getConnection()->get(ParallelRunningDictionary::IS_INITIAZLIED_KEY);
$value = $this->kvStorage->getKvStorage()->get(ParallelRunningDictionary::IS_INITIAZLIED_KEY);
return $value === ParallelRunningDictionary::IS_INITIAZLIED_TRUE_VALUE;
}

public function isReady(): bool
{
$value = $this->redisConnection->getConnection()->get(ParallelRunningDictionary::IS_RUNNING_KEY);
$value = $this->kvStorage->getKvStorage()->get(ParallelRunningDictionary::IS_RUNNING_KEY);
return $value === ParallelRunningDictionary::IS_RUNNING_VALUE_TRUE;
}
}
11 changes: 1 addition & 10 deletions src/Services/ExperimentsParallelRun/ParallelRunInitializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
namespace Abrouter\Client\Services\ExperimentsParallelRun;

use Abrouter\Client\DB\Managers\ParallelRunningStateManager;
use Abrouter\Client\DB\RedisConnection;
use Abrouter\Client\DB\RelatedUsersStore;
use Abrouter\Client\DB\Repositories\ParallelRunningStateCachedRepository;

Expand All @@ -15,24 +14,16 @@ class ParallelRunInitializer

private ParallelRunningStateManager $parallelRunningStateManager;

private RedisConnection $redisConnection;

public function __construct(
ParallelRunningStateCachedRepository $parallelRunningStateCachedRepository,
ParallelRunningStateManager $parallelRunningStateManager,
RedisConnection $redisConnection
ParallelRunningStateManager $parallelRunningStateManager
) {
$this->parallelRunningStateCachedRepository = $parallelRunningStateCachedRepository;
$this->parallelRunningStateManager = $parallelRunningStateManager;
$this->redisConnection = $redisConnection;
}

public function initializeIfNot(): bool
{
if (!$this->redisConnection->isReady()) {
return false;
}

//if parallel running ready to serve
if ($this->parallelRunningStateCachedRepository->isReady()) {
return true;
Expand Down

0 comments on commit f0674e1

Please sign in to comment.