Comments (6)
I use app.run(use_reloader=False) to prevent flask to create two instances of flask_apscheduler.APScheduler. If I omit use_reload=False jobs are also fired twice for me.
See: http://stackoverflow.com/a/15491587
from flask-apscheduler.
Hi @rj919
I tried to run your code and it runs the job only once on startup, I added the same job through the API it will execute another time, It seems to work as expected.
Maybe I didn't understand well your question, you could rephrase it?
from flask-apscheduler.
After some further investigation, it appears the phenomena is associated with calling the startup file a second time. Whenever a function references the same file that houses the app object for the first time, it re-initializes the startup jobs. So, since the startup job launch:app.logger.debug was referencing it's own file, it was duplicated along with all the other jobs added to the scheduler by commands in launch.py
This may be a feature of how Flask_APScheduler or APScheduler itself retrieves callables. But, it is definitely occurring both in my windows environment and my alpine linux virtualbox.
For most things, I think I can work around this problem by putting the callables in other files, but it may be tricky trying to incorporate the app object into other callables (for say logging) since any reference to the file with the scheduler seems to invoke it a second time.
Thoughts?
from flask-apscheduler.
Now I see the issue, that isn't going to work.
You have to restructure your project, you have to instantiate Flask and APScheduler in one file and initialize them in another file.
For example:
init.py
app = Flask()
scheduler = APScheduler()
jobs.py
from . import app
def job1():
app.logger.debug('lalala')
lunch.py
from . import app, scheduler
if __name__ == '__main__':
scheduler.init_app(app)
app.run()
from flask-apscheduler.
In his example above, even using use_reloader=False it will still happen.
Anyway, it is not a good practice to put everything into one single file.
from flask-apscheduler.
Separating the init from the launch did the trick. And... you make a good point about putting all the configs into an init file being better practice (especially for all these self-referential callables). Thanks!
from flask-apscheduler.
Related Issues (20)
- [PLS HELP] Flask-Appbuilder - accessing scheduler from views.py HOT 2
- ModuleNotFoundError: No module named 'scheduler' HOT 2
- The task is interrupted inexplicably
- Trying to run a function as a schedule and also trigger on demand HOT 4
- Flask-APScheduler not running when set some environment variables HOT 3
- Running job causes detachedinstanceerror HOT 3
- Use Codecov in informational mode HOT 1
- APScheduler not working with gunicorn eventlet HOT 6
- Flask 2.3.2 causing KeyError: 'JSONIFY_PRETTYPRINT_REGULAR' HOT 1
- Flask-APScheduler multiple jobs running at the same time when having multiple workers HOT 1
- [RFE] Package python3-flask-apscheduler into RPM
- KeyError: 'JSONIFY_PRETTYPRINT_REGULAR' when running Flask as a development server HOT 2
- Apscheduler not working with flask debug=True & --no-reload
- Flask 3.0.0 support HOT 1
- Behaviour of processpool HOT 1
- Key Error while passing redis instance as arg HOT 2
- Can't start BlockingScheduler as daemon in debug mode
- Issue with sqlalchemy (cannot join current thread and working outside of app context) HOT 4
- python3-flask-APScheduler_1.13.0.bb HOT 4
- Can I use hive database to restore jobs? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flask-apscheduler.