python flask scheduling: all workers start scheduler taskFind all files in a directory with extension .txt in PythonRemove all whitespace in a string in PythonHow can I get the named parameters from a URL using Flask?How to run recurring task in the Python Flask framework?Celery restart loss scheduled tasksStarting and stopping flask on demandJob is not performed by APScheduler's BackgroundSchedulerRunning Flask port 80 on Elastic-Beanstalk Worker
Are there types of animals that can't make the trip to space? (physiologically)
Garage door sticks on a bolt
How to identify whether a publisher is genuine or not?
Looking for circuit board material that can be dissolved
Disable all sound permanently
Could the Queen overturn the UK Supreme Court ruling regarding prorogation of Parliament?
Is there a way to remove Smite from a weapon?
Why does `FindFit` fail so badly in this simple case?
Principled construction of the quaternions
Caro-Kann c4-c5 push
How to level a picture frame hung on a single nail?
Drawing Maps; flat distortion
IEEE 754 square root with Newton-Raphson
What makes a character irredeemable?
Does Bank Manager's discretion still exist in Mortgage Lending
Should I be an author on another PhD student's paper if I went to their meetings and gave advice?
What are one's options when facing religious discrimination at the airport?
Would a horse be sufficient buffer to prevent injury when falling from a great height?
Is "weekend warrior" derogatory?
Lighthouse Alternatives
What is the score of my Scopa hand?
Booting Ubuntu from USB drive on MSI motherboard -- EVERYTHING fails
What is the meaning of first flight and introduction in aircraft production?
Can an untrusted VPN client monitor my network activity?
python flask scheduling: all workers start scheduler task
Find all files in a directory with extension .txt in PythonRemove all whitespace in a string in PythonHow can I get the named parameters from a URL using Flask?How to run recurring task in the Python Flask framework?Celery restart loss scheduled tasksStarting and stopping flask on demandJob is not performed by APScheduler's BackgroundSchedulerRunning Flask port 80 on Elastic-Beanstalk Worker
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty
margin-bottom:0;
I use scheduled tasks inside a flask application:
import time
import atexit
from apscheduler.schedulers.background import BackgroundScheduler
def intervall():
with app.app_context():
call_function_to_do()
scheduler = BackgroundScheduler()
scheduler.add_job(func=intervall, trigger="interval", seconds=5)
scheduler.start()
# Shut down the scheduler when exiting the app
atexit.register(lambda: scheduler.shutdown())
My problem is that all gunicorn workers are starting the scheduler task. In this case checking for a timeout situation and sending an email to a user.
Does anybody have an idea how to only have one worker excute call_function_to_do()
?
python flask apscheduler
add a comment
|
I use scheduled tasks inside a flask application:
import time
import atexit
from apscheduler.schedulers.background import BackgroundScheduler
def intervall():
with app.app_context():
call_function_to_do()
scheduler = BackgroundScheduler()
scheduler.add_job(func=intervall, trigger="interval", seconds=5)
scheduler.start()
# Shut down the scheduler when exiting the app
atexit.register(lambda: scheduler.shutdown())
My problem is that all gunicorn workers are starting the scheduler task. In this case checking for a timeout situation and sending an email to a user.
Does anybody have an idea how to only have one worker excute call_function_to_do()
?
python flask apscheduler
add a comment
|
I use scheduled tasks inside a flask application:
import time
import atexit
from apscheduler.schedulers.background import BackgroundScheduler
def intervall():
with app.app_context():
call_function_to_do()
scheduler = BackgroundScheduler()
scheduler.add_job(func=intervall, trigger="interval", seconds=5)
scheduler.start()
# Shut down the scheduler when exiting the app
atexit.register(lambda: scheduler.shutdown())
My problem is that all gunicorn workers are starting the scheduler task. In this case checking for a timeout situation and sending an email to a user.
Does anybody have an idea how to only have one worker excute call_function_to_do()
?
python flask apscheduler
I use scheduled tasks inside a flask application:
import time
import atexit
from apscheduler.schedulers.background import BackgroundScheduler
def intervall():
with app.app_context():
call_function_to_do()
scheduler = BackgroundScheduler()
scheduler.add_job(func=intervall, trigger="interval", seconds=5)
scheduler.start()
# Shut down the scheduler when exiting the app
atexit.register(lambda: scheduler.shutdown())
My problem is that all gunicorn workers are starting the scheduler task. In this case checking for a timeout situation and sending an email to a user.
Does anybody have an idea how to only have one worker excute call_function_to_do()
?
python flask apscheduler
python flask apscheduler
edited Mar 28 at 21:08
caliph
asked Mar 28 at 20:54
caliphcaliph
4856 silver badges23 bronze badges
4856 silver badges23 bronze badges
add a comment
|
add a comment
|
1 Answer
1
active
oldest
votes
There are basically two options. One of them outlined in the FAQ is to separate scheduler into separate process and communicate with the process using some remote access protocol (e.g. using RPyC). The other method is to start the scheduler in Flask app, but ensure that only one such instance is run. You can use some kind of locking mechanism, e.g. RedLock.
add a comment
|
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55406707%2fpython-flask-scheduling-all-workers-start-scheduler-task%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
There are basically two options. One of them outlined in the FAQ is to separate scheduler into separate process and communicate with the process using some remote access protocol (e.g. using RPyC). The other method is to start the scheduler in Flask app, but ensure that only one such instance is run. You can use some kind of locking mechanism, e.g. RedLock.
add a comment
|
There are basically two options. One of them outlined in the FAQ is to separate scheduler into separate process and communicate with the process using some remote access protocol (e.g. using RPyC). The other method is to start the scheduler in Flask app, but ensure that only one such instance is run. You can use some kind of locking mechanism, e.g. RedLock.
add a comment
|
There are basically two options. One of them outlined in the FAQ is to separate scheduler into separate process and communicate with the process using some remote access protocol (e.g. using RPyC). The other method is to start the scheduler in Flask app, but ensure that only one such instance is run. You can use some kind of locking mechanism, e.g. RedLock.
There are basically two options. One of them outlined in the FAQ is to separate scheduler into separate process and communicate with the process using some remote access protocol (e.g. using RPyC). The other method is to start the scheduler in Flask app, but ensure that only one such instance is run. You can use some kind of locking mechanism, e.g. RedLock.
answered Mar 29 at 19:50
Tomáš LinhartTomáš Linhart
5,7971 gold badge11 silver badges24 bronze badges
5,7971 gold badge11 silver badges24 bronze badges
add a comment
|
add a comment
|
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55406707%2fpython-flask-scheduling-all-workers-start-scheduler-task%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown