jenkins-bot has submitted this change and it was merged.
Change subject: Requeue delayed messages
......................................................................
Requeue delayed messages
Maintenance task to take the place of the delay_till header.
Bug: T142028
Change-Id: Ice63d509ab4764fd74d9022589e9b7db20bf5d82
---
A Maintenance/RequeueDelayedMessages.php
1 file changed, 64 insertions(+), 0 deletions(-)
Approvals:
Awight: Looks good to me, approved
jenkins-bot: Verified
diff --git a/Maintenance/RequeueDelayedMessages.php
b/Maintenance/RequeueDelayedMessages.php
new file mode 100644
index 0000000..be16a74
--- /dev/null
+++ b/Maintenance/RequeueDelayedMessages.php
@@ -0,0 +1,64 @@
+<?php
+namespace SmashPig\Maintenance;
+
+require ( 'MaintenanceBase.php' );
+
+use SmashPig\Core\Configuration;
+use SmashPig\Core\Logging\Logger;
+use SmashPig\Core\DataStores\DamagedDatabase;
+
+$maintClass = '\SmashPig\Maintenance\RequeueDelayedMessages';
+
+/**
+ * Requeues damaged messages that are ready for re-processing
+ */
+class RequeueDelayedMessages extends MaintenanceBase {
+
+ /**
+ * @var DamagedDatabase
+ */
+ protected $damagedDatabase;
+
+
+ public function __construct() {
+ parent::__construct();
+ $this->addOption(
+ 'max-messages', 'At most requeue <n> messages', 500, 'm'
+ );
+ }
+
+ /**
+ * Do the actual work of the script.
+ */
+ public function execute() {
+ $this->damagedDatabase = DamagedDatabase::get();
+
+ $messages = $this->damagedDatabase->fetchRetryMessages(
+ $this->getOption( 'max-messages' )
+ );
+ $stats = array();
+ $config = Configuration::getDefaultConfig();
+
+ foreach( $messages as $message ) {
+ $queueName = $message['original_queue'];
+ // FIXME: getting it by alias, this will be annoying
cos -new
+ $queue = $config->object( "data-store/$queueName", true
);
+ unset( $message['original_queue'] );
+ $queue->push( $message );
+ $this->damagedDatabase->deleteMessage( $message );
+ if ( isset( $stats[$queueName] ) ) {
+ $stats[$queueName]++;
+ } else {
+ $stats[$queueName] = 1;
+ }
+ }
+
+ foreach ( $stats as $queueName => $count ) {
+ Logger::info(
+ "Requeued $count messages to $queueName."
+ );
+ }
+ }
+}
+
+require ( RUN_MAINTENANCE_IF_MAIN );
--
To view, visit https://gerrit.wikimedia.org/r/302839
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ice63d509ab4764fd74d9022589e9b7db20bf5d82
Gerrit-PatchSet: 7
Gerrit-Project: wikimedia/fundraising/SmashPig
Gerrit-Branch: master
Gerrit-Owner: Ejegg <[email protected]>
Gerrit-Reviewer: Awight <[email protected]>
Gerrit-Reviewer: Cdentinger <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits