Esempio n. 1
0
  void trigger(EventSubscription subscription, ParamSet eventContext,
               TaskInstance parentInstance) const {
    if (_scheduler) {
      QString id;
      if (parentInstance.isNull()) {
        id = _id;
      } else {
        TaskInstancePseudoParamsProvider ppp = parentInstance.pseudoParams();
        id = eventContext.evaluate(_id, &ppp);
        QString idIfLocalToGroup = parentInstance.task().taskGroup().id()
            +"."+_id;
        if (_scheduler->taskExists(idIfLocalToGroup))
          id = idIfLocalToGroup;
      }
      TaskInstanceList instances = _scheduler->syncRequestTask(
          id, evaluatedOverrindingParams(eventContext, parentInstance), _force,
          parentInstance);
      if (instances.isEmpty())
        Log::error(parentInstance.task().id(), parentInstance.idAsLong())
            << "requesttask action failed to request execution of task "
            << id << " within event subscription context "
            << subscription.subscriberName() << "|" << subscription.eventName();
      else
        foreach (TaskInstance childInstance, instances)
          Log::info(parentInstance.task().id(), parentInstance.idAsLong())
              << "requesttask action requested execution of task "
              << childInstance.task().id() << "/" << childInstance.groupId();
    }

  }