Изменена логика для работы с очередью задач, чтобы её можно было использовать в дальнейшем в кластере серверов

This commit is contained in:
ErickSkrauch
2016-07-17 18:25:24 +03:00
parent 9ea689a700
commit 6d3db89140
8 changed files with 56 additions and 20 deletions

View File

@@ -104,7 +104,7 @@ class RegistrationForm extends ApiForm {
}
$changeUsernameForm = new ChangeUsernameForm();
$changeUsernameForm->createTask($account->id, $account->username, null);
$changeUsernameForm->createEventTask($account->id, $account->username, null);
return $account;
}

View File

@@ -57,7 +57,7 @@ class ChangeUsernameForm extends PasswordProtectedForm {
throw $e;
}
$this->createTask($account->id, $account->username, $oldNickname);
$this->createEventTask($account->id, $account->username, $oldNickname);
return true;
}
@@ -69,18 +69,18 @@ class ChangeUsernameForm extends PasswordProtectedForm {
* @param string $newNickname
* @param string $oldNickname
*/
public function createTask($accountId, $newNickname, $oldNickname) {
$message = Amqp::getInstance()->prepareMessage(new UsernameChanged([
public function createEventTask($accountId, $newNickname, $oldNickname) {
$model = new UsernameChanged([
'accountId' => $accountId,
'oldUsername' => $oldNickname,
'newUsername' => $newNickname,
]), [
]);
$message = Amqp::getInstance()->prepareMessage($model, [
'delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT,
]);
Amqp::sendToExchange('account', 'username-changed', $message, [
3 => true, // durable -> true
]);
Amqp::sendToEventsExchange('accounts.username-changed', $message);
}
}