私の同僚の 1 人がこのワーカー クラスを書きました (Yii 1.1/Pheanstalk で使用)。
コード レビューで、中かっこの 2 つのブロックに出くわし、なぜこのようにしたのかを彼に尋ねました。彼は、ロック競合を防ぎたいと言いました。
聞いたことがない!それは本当にこのように機能していますか?
class InvoiceWorker
{
public static function generateAndSendInvoice($id)
{
// some code
{
$order = Order::loadLocked(new MongoId($id));
Yii::app()->invoiceManager->createInvoice($order);
}
{
$order = Util::safeFindByPk("Order", new MongoId($id));
Yii::app()->invoiceManager->sendMail($order);
}
// some more code
}
}