Rober Rober - 1 month ago 22
Node.js Question

Limit memory on Heroku Scheduler

I have a few scheduled tasks on Heroku Scheduler addon and I'm hitting the memory limit on a few of them. According to Heroku docs, this is because NodeJs lazy behaviour. I need to explicitly define the memory allocated for the process (512Mb) but not sure how to do it from the Scheduler interface.

This is how it looks when I run it locally:

node --optimize_for_size --max_old_space_size=512 myTask.js


Any idea about passing these values to the Scheduler or a workaround?

Answer

I am sure you can pass the extra args to Heroku Scheduler task.

The scheduler uses the same one-off dynos that heroku run uses to execute your jobs, so you can be assured that if it works with heroku run, it will work from the scheduler. https://devcenter.heroku.com/articles/scheduler#testing-tasks

So basically you should be able to test out the command before with heroku run node --optimize_for_size --max_old_space_size=512 myTask.js. The 512MB limit isn't hard limit, so it's not a problem if it shortly reaces the ~530MB limit.