diff options
Diffstat (limited to 'Digitigrade/Job/PushObject.php')
| -rw-r--r-- | Digitigrade/Job/PushObject.php | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Digitigrade/Job/PushObject.php b/Digitigrade/Job/PushObject.php new file mode 100644 index 0000000..f5f1430 --- /dev/null +++ b/Digitigrade/Job/PushObject.php @@ -0,0 +1,30 @@ +<?php +namespace Digitigrade\Job; + +use Digitigrade\Job; +use Digitigrade\Logger; +use Digitigrade\Model\Instance; +use Digitigrade\Model\PushableModel; + +class PushObject extends Job { + public string $objectType; + public string $objectId; + public string $recipientServerHost; + + public function __construct(PushableModel $object, Instance $recipient) { + $this->objectType = $object::class; + $this->objectId = $object->id; + $this->recipientServerHost = $recipient->domain; + $this->remainingTries = 8; + } + + public function run() { + $instance = Instance::findByHostname($this->recipientServerHost); + assert($instance != null); + $object = $this->objectType::find($this->objectId); + assert($object instanceof PushableModel); + + Logger::getInstance()->info("pushing object $object->uri to server $instance->domain"); + $instance->pushObject($object); + } +}
\ No newline at end of file |
