mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-01 19:22:42 +01:00
5903ed650c
Summary: Currently, when taskmasters complete a task it is immediately deleted. This prevents us from doing some general things, like: - Supporting the idea of permanent failure (e.g., after N failures just stop trying). - Showing the user how fast taskmasters are completing tasks. - Showing the user how long tasks took to complete. Having better visibility into this is important to Drydock, which builds on the task system. Also, generally buff debug output for task execution. Test Plan: Ran `bin/phd debug taskmaster`. Ran `bin/phd debug garbage`. Queued some tasks via various systems. Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T2015 Differential Revision: https://secure.phabricator.com/D3852
45 lines
1.5 KiB
PHP
Executable file
45 lines
1.5 KiB
PHP
Executable file
#!/usr/bin/env php
|
|
<?php
|
|
|
|
/*
|
|
* Copyright 2012 Facebook, Inc.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
/*
|
|
* After upgrading to/past D1723, the handling of messages queued for delivery
|
|
* is a bit different. Running this script will take any messages that are
|
|
* queued for delivery, but don't have a worker task created, and create that
|
|
* worker task. Without the worker task, the message will just sit at "queued
|
|
* for delivery" and nothing will happen to it.
|
|
*/
|
|
|
|
$root = dirname(dirname(dirname(__FILE__)));
|
|
require_once $root.'/scripts/__init_script__.php';
|
|
|
|
$messages = id(new PhabricatorMetaMTAMail())->loadAllWhere(
|
|
'status = %s', PhabricatorMetaMTAMail::STATUS_QUEUE);
|
|
|
|
foreach ($messages as $message) {
|
|
if (!$message->getWorkerTaskID()) {
|
|
$mailer_task = PhabricatorWorker::scheduleTask(
|
|
'PhabricatorMetaMTAWorker',
|
|
$message->getID());
|
|
|
|
$message->setWorkerTaskID($mailer_task->getID());
|
|
$message->save();
|
|
$id = $message->getID();
|
|
echo "#$id\n";
|
|
}
|
|
}
|