dapr-sandbox / dapr-logicapps-extension

Run Cloud Native workflows on any environment using Dapr
Apache License 2.0
135 stars 29 forks source link

Recurrence Trigger Doesn't Start #76

Open ben-kotvis opened 3 years ago

ben-kotvis commented 3 years ago

I was able to get a workflow to work if it has a manual trigger but if I just want a recurrence trigger it loads correctly but I don't get any events firing.

If I use a manual trigger it performs the workflow as expected. Is this not correctly implemented?

{
  "definition": {
    "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
    "actions": {
      "Function": {
        "type": "Http",
        "inputs": {
          "method": "POST",
          "uri": "http://localhost:3503/v1.0/invoke/receiver/method/log",
          "headers": {
            "Content-Type": "application/json"
          }
        },
        "runAfter": {}
      }
    },
    "contentVersion": "1.0.0.0",
    "outputs": {},
    "parameters": {},
    "triggers": {
      "Recurrence": {
        "type": "Recurrence",
        "recurrence": {
          "frequency": "Minute",
          "interval": 2
        }
      }
    }
  }
}

EDIT: I thought it worked but it was a red herring. I see InternalServerErrors for the action in TableStorage. So it seems like the ability to execute an action on the callback of the recurrence is messed up. I don't know if there is some context missing in memory but it seems to be a problem like that. If I run the following it does work.

{
  "definition": {
    "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
    "actions": {
      "Until": {
        "type": "Until",
        "actions": {
          "Delay": {
            "type": "Wait",
            "inputs": {
               "interval": {
                  "count": 15,
                  "unit": "Second"
               }
            },
            "runAfter": { }
         },
         "FunctionTwo": {
          "type": "Http",
          "inputs": {
            "method": "POST",
            "uri": "http://192.168.1.224:3502/v1.0/invoke/receiver/method/log",
            "body": [

            ],
            "headers": {
              "Content-Type": "application/json"
            }
          },
          "runAfter": {
            "Delay": [
              "Succeeded"
            ]
          }
          }
        },
        "expression": "@equals(1, 0)",
        "limit": { 
           "count": 1000,
           "timeout": "PT1H"
        },
        "runAfter": { }
     }
    },
    "contentVersion": "1.0.0.0",
    "outputs": {},
    "parameters": {},
    "triggers": {
      "manual": {
        "inputs": {
          "schema": {}
        },
        "kind": "Http",
        "type": "Request"
      }
    }
  }
}

So it seems like there is something unavailable on the callback that is causing an error.