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;









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() ?










share|improve this question
































    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() ?










    share|improve this question




























      0












      0








      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() ?










      share|improve this question
















      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






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 28 at 21:08







      caliph

















      asked Mar 28 at 20:54









      caliphcaliph

      4856 silver badges23 bronze badges




      4856 silver badges23 bronze badges

























          1 Answer
          1






          active

          oldest

          votes


















          0
















          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.






          share|improve this answer


























            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
            );



            );














            draft saved

            draft discarded
















            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









            0
















            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.






            share|improve this answer





























              0
















              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.






              share|improve this answer



























                0














                0










                0









                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.






                share|improve this answer













                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.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                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































                    draft saved

                    draft discarded















































                    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.




                    draft saved


                    draft discarded














                    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





















































                    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







                    Popular posts from this blog

                    How to preserve electronics (computers, tablets and phones) for hundreds of years Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) The network's official Twitter account is up and running again. What content…How might modern humans leave a message for 50,000 years?How would an aquatic race develop computers?How do we make computers care for human life?Keeping supplies for 1000 yearsWhat will cell phones become in 100 years?What body armor protects against a laser?Could a society attain 1800s technology if limited to using copper and bronze?Electricity power (magic) and electronicsScavenging metal resources in post-apocalypse after 100 yearsWhy would precursors create devices that can survive and still work after hundreds of years?

                    155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해

                    Convert JSON to MapSimplest way to convert a string representing JSON array into Java array List of key value pairsHow to take String JSON values into HashMapConvert a JSON String to a HashMapCreating BSON object from JSON stringJSONObject - How to get a value ?Better Map ConstructorReading JSON from Url javaUpdate columns if input values are not null otherwise ignore and keep the existing values of column in databaseHow to store object represented as Json string into Couchbase Lite?Go JSON into MapHow do I efficiently iterate over each entry in a Java Map?Sort a Map<Key, Value> by valuesHow to round a number to n decimal places in JavaCan comments be used in JSON?How do I read / convert an InputStream into a String in Java?How can I pretty-print JSON in a shell script?What is the correct JSON content type?How can I deserialize JSON to a simple Dictionary<string,string> in ASP.NET?Why does Google prepend while(1); to their JSON responses?Parse JSON in JavaScript?