CronQueue stuck at initial stage while MapReduceQueue did all the work

My cron job uses map reduce function to generate risk scores for each asset. When I manually kick-off a cron job on 7.9, the CronQueue got stuck at initial stage, but the MapReduceQueue was working to get things done.

I can understand how map reduce queue got triggered, but what’s strange here is that cron job kept stuck at initial stage. Even after map reduce job is finished, the cron job queue still seems stuck as shown below. My cron job target type is GenerateRiskScoreJob.

The code I used to kick off a cron job is:
CronJob.get('trigger-for-GenerateRiskScoreJob-transformer-DEP').schedule({cronExpression: "0 0 22 * * ?"})

Here is the cron job code:

  "type": "[CronJob]",
  "value": [
    {
      "description": "Cron Job to compute Risk Scores for DEF region every day at 2 am (EDT).",
      "action": {
        "actionName": "generateRiskScoreToday",
        "typeName": "GenerateRiskScoreJob"
      },
      "scheduleDef": {
        "cronExpression": "0 0 6 * * ?",
        "skipOverdue": true
      },
      "inputs": {
        "modelId": {
          "type": "string",
          "value": "PMModel_Combined"
        },
        "filter": {
          "type": "string",
          "value": "failures.region == 'DEF'|| currentParent.parent.serviceArea.parent.parent == 'DEF'"
        },
        "batchSize": {
          "type": "int",
          "value": 5
        }
      },
      "trackHistory": false,
      "id": "trigger-for-GenerateRiskScoreJob-transformer-DEF",
      "name": "Generate Risk Scores for DEF CronJob (Transformer)"
    }, 
...

That is how cron scheduling works. There should always be one in “initial” state with the context indicating the next time it will be run. When it is time to run, it is changed to “pending” so that it gets picked up for execution. After the command in the cron job is executed, a new entry is put in the CronQueue with the new scheduled date.

thanks for your reply. I understand why the cron queue is in ‘initial’ state before reaching the next scheduled date. But I should expect to see it changed to ‘pending’ when it reached the scheduled time and especially when map reduce queue (triggered by cron job) started working, right?

@muyi.liu Correct, however, since the cron job only “fires” the map reduce job so it would only be ‘pending’ for a very short while and would be replaced with one in ‘initial’ with the next scheduled time almost immediately.