New scheduler (Codename: Ticker) being rolled out

Hey fellow community members and developers!

We’re doing it! The new scheduler (Ticker) is being rolled out to everyone as of now. We wanted to give you a quick note as to what to expect, what the new scheduler is, and what it isn’t.

What is ticker?

Ticker is our new scheduling architecture for SmartApps and Device Type Handlers. It has been built to be much more robust and scalable than the Cassandra scheduler we have been using for the last couple of years. We are really confident in it’s ability to improve scheduled actions on the platform.

How do you know it will be more reliable?

We first went back to the drawing board and really thought through this one and we are confident in the architecture. With ticker we have compensation jobs that check for any cron schedules that may have failed and restarts them. Also, the scheduling system is much more isolated from the rest of the application so any issues with other components should have no real impact on the scheduler. We also made sure to put Ticker through its paces, putting techincal load on the scheduler at a factor of ~20x compared to current scheduler load. We were able to successfully apply this kind of load with no lag.

Secondly, we have added a “backup” to the scheduler, so if it does get into a position of lag, schedules will be dropped into the backup and executed there, so schedules aren’t just dropped.

What scheduling functions does this affect?

This affects all our the platform scheduling operations.

  • run-in()
  • runOnce()
  • schedule()
  • runEvery5Minutes()
  • runEvery10Minutes()
  • runEvery15Minutes()
  • runEvery30Minutes()
  • runEvery1Hour()
  • runEvery3Hours()

Pro-Tip: The runEveryX methods will add some “jitter” to your schedules to reduce load during popular schedule times.

I can finally chain my run-ins!?

For a short period of time a chained run-in should be fine, but should not be used for longer periods of time. For example, if you wanted to slowly dim a smart-bulb over a short period of time a chained run-in would work, but should not be used for tasks you want to run for days/weeks/years, Cron is the tool for that.

What about local (AppEngine) schedules?

These schedules will not be affected. Local schedules do not interact with the cloud and as such will not be affected negatively or positively. Local (AppEngine) scheduled jobs will not show in the IDE, similarly to how it worked in the past.

Why not just run every schedule on the hub?

Due to the fact that not all SmartApps can run on the hub, this is not possible at the moment. We also have to work within the technologies we have now, and at the moment, this just isn’t an option.

What happens if Ticker does miss a schedule?

Cron schedules should be are more resilient in the case of failure, but the chained run-in pattern will fail in the case of a schedule fire being missed to an unexpected error.

What will happen when I am moved over to the new scheduler?

We have setup the move process in such a way that we can move your account over to the new scheduler and re-schedule your jobs on Ticker. As we are migrating to the new scheduler if you see issues the “update” button should work to restart schedules, however this should not be necessary and if you continue to have issues please contact support so we can dig into and fix the issue.

How do I tell if I am on the new scheduler?

The new Ticker scheduler shows future schedules as “PENDING” instead of “WAITING”. You can see the details of each smart app by logging into the IDE>Click “My Locations”>Click “List SmartApps”>Select the smartapp you want to see. See screenshot below:

When can I expect to be on the new scheduler?

Most people have already been moved to the new scheduler. Please be patient with us as we make these changes. If you aren’t on the new Ticker scheduler by April 15th, please contact support@smartthings.com

Did the rollout of ticker cause last week’s issues?

No. Ticker uses a separate database and is isolated from pre-existing infrastructure.

31 Likes

Edited. Thanks for clarifying, @jody.albritton. Hope this new scheduler works well.

I edited the post above to answer your question for everyone. Ticker rollout was not related to the issues we were having last week.

This is great to see! I’m excited to see it handle some of my polling apps!! Thanks for all your work on this. One question regarding this:

If schedules do fail for some reason, is there any way to know when/why it happened? Would be nice if there was somewhere we could go in the IDE or somehow catch it in code so we can try to actually fix the problem.

1 Like

Very interesting.
I’m on the UK server and I can see that I have been migrated to the new scheduler.
I don’t know when this was completed for me but I must admit that things have been very stable for me over the past few days.
No issues whatsoever. (I’m tempting fate now…) :wink:

@jody.albritton do compensation jobs pick up run in schedules that happen to be missed?

No. It won’t fire but it will re-schedule it.

Can you please elaborate. Say runIn(10). Are you saying it will reschedule it to another 10 seconds when picked up by a compensation job?

If so then why would a chain rule fail? It should eventually be picked up right?

With regard to runIn, no this will not be rescheduled if you are chaining runIns. runIn is a one shot go, if it fails it will not run again, because runIn has no intent. Cron does, so we can reschedule them with a service if they fail.

2 Likes

I’ve been on Ticker for the last week and it’s been rock solid, even when SHM was bugging out. Great work so far guys, let’s hope it can continue to deliver!

1 Like

Okay makes sense, don’t want it suddenly going off a few hours/days later.

However, under what condition could it drop off?

1 Like

@Jody While I have (recurring) scheduled events, the IDE result using the instructions provided only shows “none” for my hub? Is there another way to verify whether or not Ticker has been installed; and why would my IDE show “none”?

Thanks much,
Shawn

1 Like

@jody.albritton

I think they’ve answered this in the first post: (just have to find out what could cause an Unexpected Error :grinning:)

1 Like

@jody.albritton

Mine is the same. Sometime on Sunday, every scheduled event on my account disappeared, so every smartapp and routine says “no events scheduled.” Is that part of the changeover?

If you’re schedules aren’t showing checkout this section of the FAQ.[quote=“jodyalbritton, post:1, topic:42897”]
What will happen when I am moved over to the new scheduler?

We have setup the move process in such a way that we can move your account over to the new scheduler and re-schedule your jobs on Ticker. As we are migrating to the new scheduler if you see issues the “update” button should work to restart schedules, however this should not be necessary and if you continue to have issues please contact support so we can dig into and fix the issue.
[/quote]

Why did ST choose to roll this out to the masses with the issues of the past week? Especially since the issues are not 100% resolved? And, what happened to the beta test, did it occur?

1 Like

Is there a way to tell if you are on the new system “Ticker”?

Scheduled jobs say “PENDING” instead of “WAITING”.