create separate classes WorkerClient and MasterClient

This commit is contained in:
Evgeny Zinoviev 2021-03-02 20:31:10 +03:00
parent c269f18cc8
commit c2639092c6
3 changed files with 72 additions and 42 deletions

View File

@ -54,48 +54,6 @@ class Client {
return $this->recv();
}
/**
* @param array $targets
* @return ResponseMessage
* @throws \Exception
*/
public function poke(array $targets) {
return $this->recv(
$this->sendRequest(new RequestMessage('poke', ['targets' => $targets]))
);
}
/**
* @return ResponseMessage
* @throws \Exception
*/
public function status() {
return $this->recv(
$this->sendRequest(new RequestMessage('status'))
);
}
/**
* @param array $targets
* @return ResponseMessage
* @throws \Exception
*/
public function poll(array $targets) {
return $this->recv(
$this->sendRequest(new RequestMessage('poll', ['targets' => $targets]))
);
}
/**
* @param int $id
* @return ResponseMessage
*/
public function runManual(int $id) {
return $this->recv(
$this->sendRequest(new RequestMessage('run-manual', ['id' => $id]))
);
}
/**
* @param RequestMessage $request
* @return int

30
src/MasterClient.php Normal file
View File

@ -0,0 +1,30 @@
<?php
namespace jobd;
class MasterClient extends Client {
/**
* @param array $targets
* @return ResponseMessage
* @throws \Exception
*/
public function poke(array $targets): ResponseMessage
{
return $this->recv(
$this->sendRequest(new RequestMessage('poke', ['targets' => $targets]))
);
}
/**
* @return ResponseMessage
* @throws \Exception
*/
public function status(): ResponseMessage
{
return $this->recv(
$this->sendRequest(new RequestMessage('status'))
);
}
}

42
src/WorkerClient.php Normal file
View File

@ -0,0 +1,42 @@
<?php
namespace jobd;
class WorkerClient extends Client {
/**
* @return ResponseMessage
* @throws \Exception
*/
public function status(): ResponseMessage
{
return $this->recv(
$this->sendRequest(new RequestMessage('status'))
);
}
/**
* @param string[] $targets
* @return ResponseMessage
* @throws \Exception
*/
public function poll(array $targets): ResponseMessage
{
return $this->recv(
$this->sendRequest(new RequestMessage('poll', ['targets' => $targets]))
);
}
/**
* @param int[] $ids
* @return ResponseMessage
* @throws \Exception
*/
public function runManual(array $ids): ResponseMessage
{
return $this->recv(
$this->sendRequest(new RequestMessage('run-manual', ['ids' => $ids]))
);
}
}