orders.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:ws-backend-community 作者: lavalamp- 项目源码 文件源码
def handle_order_completion(self, order_uuid=None, retry_interval=10, completion_count=1):
    """
    Check to see if the order associated with the given UUID has completed and, if it has, handle the completion
    of the order.
    :param order_uuid: The UUID of the order to check on.
    :param retry_interval: The time (in seconds) between checking on whether or not the referenced
    order has completed.
    :param completion_count: The number of outstanding tasks associated with an order that should indicate
    that the order has finished.
    :return: None
    """
    logger.info(
        "Now checking to see if order %s has completed."
        % (order_uuid,)
    )
    order_uuid_value = int(self.redis_helper.get(order_uuid))
    if order_uuid_value == completion_count:
        logger.info(
            "Order %s has completed!"
            % (order_uuid,)
        )
        scan_config = self.scan_config
        task_sigs = []
        if scan_config.completion_email_org_users:
            org = self.order.organization
            task_sigs.append(email_org_users_for_order_completion.si(
                order_uuid=order_uuid,
                org_uuid=org.uuid,
                org_name=org.name,
            ))
        elif scan_config.completion_email_order_user:
            org = self.order.organization
            task_sigs.append(email_order_user_for_order_completion.si(
                order_uuid=order_uuid,
                org_uuid=org.uuid,
                org_name=org.name,
            ))
        if scan_config.completion_web_hook_url:
            task_sigs.append(request_web_hook_for_order_completion.si(order_uuid=order_uuid))
        if len(task_sigs) > 0:
            canvas_sig = group(task_sigs)
            logger.info(
                "Now kicking off %s tasks to handle the completion of order %s."
                % (len(task_sigs), order_uuid)
            )
            self.finish_after(signature=canvas_sig)
        else:
            logger.info(
                "No tasks to run in response to completion of order %s."
                % (order_uuid,)
            )
    else:
        logger.info(
            "Order %s has not completed yet (%s tasks currently outstanding)."
            % (order_uuid, order_uuid_value,)
        )
        raise self.retry(countdown=retry_interval)


#USED
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号