Jump to content

PassiveCron - Background Task Scheduling Service


Marvin Scharle
 Share

Recommended Posts

Hi everyone!

I'd like to introduce PassiveCron - a module, which allows developers to schedule cronjobs - to you. This will be Conclurer's second Pro Module, following ProcessImageMinimize / minimize.pw. PassiveCron is available now as a beta version.

What is it going to do?

Have you ever been in a situation, in which ProcessWire ran out of PHP's max_execution_time, because you're doing cool tasks like resizing dozens of images using PIM? Or have you noticed site load performance issues when doing a lot of tasks simultaneously?

PassiveCron will fix this by giving developers the ability to

  • schedule tasks to future and / or repeating points in time
  • run tasks asynchronously

Isn't this exactly the same as LazyCron?

No. LazyCron runs your tasks synchronously as your page loads. So running larger tasks will decrease your page's load performance.

Instead of this, PassiveCron is able to run those tasks separately from your site loads, thanks to our new web service cron.pw, which will be released together with PassiveCron.

How can I use this in my site / module?

We will bundle PassiveCron with an easy-to-use API. 

Let's say you want to call a specific module action tomorrow at 8:00 am:

$cron->tomorrow->at('8:00 am')->run('Class', 'Method');

Or do this specific cleanup task, every night at 3:00 am:

$cron->every("day")->at("3:00 am")->run("Class", "Method");

Or just run this one large task asynchronously:

$cron->run("Class", "Method");

How much will it cost?

We are planning to give every ProcessWire site 200 task executions / day for free. For unlimited task executions per site, it'll be around 5€ (pay once, use forever). During the beta period, no payments will be available.

Features overview

  • Easy-to-use API for asynchronous task execution
  • Integrable into existing modules for load time improvements
  • No registration at cron.pw needed
  • Pro Cache will be bypassed
  • En- or disable PassiveCron per module
  • Free minimize.pw background tasks
  • Dashboard with reports per task

So, what do you think? Is such a module what you need? Can you imagine additional features or do you have wishes for PassiveCron? Please tell us in the comments.

Thank you very much!

  • Like 19
Link to comment
Share on other sites

Marvin, great idea! I think one of the big challenges in offering that kind of service is, that usually things that go into cron, really needs to work. So using your service in own application creates high dependency on your service. While minimize.pw just leaves images uncompressed when not available, having missed cron jobs is a big problem.

Other than that - API looks great and yes, very often hoped for a functionality like that. Not sure if I would be willing to tie any business critical jobs to 3rd party service though, instead of building own cron jobs..

  • Like 3
Link to comment
Share on other sites

Hi apeisa!

Thanks for your great feedback. Such good thoughts really help us, creating just the service, developers want and need.

one of the big challenges in offering that kind of service is, that usually things that go into cron, really needs to work

I totally agree with you. Minimize.pw was our first step in the ProcessWire ecosystem. We learned a lot from it, especially creating performant web services, that just work.

With things like replication and auto-failover, I think we can guarantee a 99% working service. In the coming days, I'll post more information about how the service is going to work. And opposite to ProcessImageMinimize / minimize.pw, PassiveCron / cron.pw will have an extended open beta period before the first final release.

We want to help web developers creating the site with everything they imagine, so this is the way to go.


Not sure if I would be willing to tie any business critical jobs to 3rd party service though, instead of building own cron jobs..

 

On this one, I'm also right there with you. If everything works fine - and I do think so - we have great ideas to follow up for large projects' needs.

  • Like 3
Link to comment
Share on other sites

Hi again,

just as promised: I'm going to give you a glance at two additional features of PassiveCron.

1. Pro Cache Bypass

Unlike LazyCron, which is executed parallel to page loads, PassiveCron will be able to execute tasks even while Pro Cache is turned on. So you are able to execute tasks while having great load performance thanks to Pro Cache.

2. No registration needed

Unlike ProcessImageMinimize / minimize.pw, there is no need to sign up at our web service. As you install PassiveCron, it will automatically register itself anonymously at cron.pw and just work.

In the next weeks we will post more information about PassiveCron and cron.pw as we develop them, so stay tuned. 

  • Like 6
Link to comment
Share on other sites

That's sounds really, really great! I'm really excited how it will work :)

Thanks Nico, we are planning to release a beta version soon.

Hello guys!

It's been a few days since the last update - so I'd really like to tell you about two important additional features of PassiveCron and cron.pw.

1. Enable or disable PassiveCron per Module

We hope that module developers will adapt PassiveCron's task handling to improve all ProcessWire sites' speed. But at the same time, we want the user to keep control over the tasks that are able to run in the background. 

So right from the module's settings page, the user can en- or disable background task handling per module.

post-1300-0-52052800-1402897076_thumb.pn

2. minimize.pw

When PassiveCron launches, we will enhance ProcessImageMinimize / minimize.pw to adapt PassiveCron. This will increase the performance of minimizing one site's images even further. At the same time, this will allow minimize.pw to minimize images even with Pro Cache turned on.

Best of all: ProcessImageMinimize's background tasks won't reduce your daily tasks limit! 

We are very excited about PassiveCron. We are looking forward to share a few screenshots with you in the next update!

Thanks and stay tuned!

Marvin

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Hi everyone!

It's been a little bit of time since the update - the last month was very busy, but we are on the track and planning to release the first public beta version of PassiveCron / cron.pw in the next week.

Like the previous previews, I want to share with you two additional features of cron.pw.

1) Dashboard

Just like minimize.pw, cron.pw comes with a Dashboard, on which you can control every background task and upgrade your plan. It looks a lot like minimize, although it's blue this time ;-)

post-1300-0-78920700-1405622806_thumb.pn

2) Task Reports

cron.pw lets you take a look at the history of every module's tasks and their executions. This allows you to check out - if necessary - if a certain task has been executed correctly.

post-1300-0-77419200-1405623373_thumb.pn

... and to enhance your development abilities, cron.pw lets you also inspect every task in detail, including transmitted request parameters and response output.

post-1300-0-47611800-1405623375_thumb.pn

Thank you in advance for your feedback!

  • Like 6
Link to comment
Share on other sites

  • 4 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...