Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Help Wanted] apscheduler not running as the background process #184

Open
ratnapalshende opened this issue Feb 9, 2024 · 0 comments
Open

Comments

@ratnapalshende
Copy link

I am working on a project.
Below are the files from which the problem resides.

package structure

cli.py :

import click
from apscheduler.schedulers.background import BackgroundScheduler

scheduler = BackgroundScheduler(daemon=True)

def func():
	print("scheduler running with interval....")

@click.command()
@click.option('--interval', type=int, default=5, help='Interval for the scheduler in seconds')
def start_scheduler(interval):
    scheduler.add_job(func, 'interval', seconds=interval)
    scheduler.start()
    try:
        # Keep the script running (use Ctrl+C to stop it)
        while True:
            pass
    except (KeyboardInterrupt, SystemExit):
        scheduler.shutdown()


@click.command()
def stop_scheduler():
        if scheduler.running:
            scheduler.shutdown()
            print("scheduler shut down")
        else:
            print("scheduler is not running")
        
@click.command()
def status_scheduler():
    if scheduler.running:
        print("Scheduler is running.")
    else:
        print("Scheduler is not running.")

setup.py :

""" This file is used for packaging the source code and command line interface"""

from setuptools import setup

setup(
    name='test_package',
    version='0.1.0',
    packages=['my_pack'],
    install_requires=['click','APScheduler'],
    entry_points={
        'console_scripts': [
            'start = my_pack.cli:start_scheduler'
            'status = my_pack.cli:status_scheduler',
            'stop = my_pack.cli:stop_scheduler',
        ],
    },
)

Output i am getting :

when i run start command on terminal it's not running in the background.
to exit from the the script I have to hit ctr+C.

Expected output :

when i give start command it should return me shell to type another commands and should run in the background until it's stopped manually.

$ start
$ 

Troubleshooting Steps Taken

  1. I've ensured that the scheduler is running in daemon mode by setting daemon=True.
  2. I've explicitly called scheduler.start() after adding jobs.
  3. I've checked the logs for any error messages related to the scheduler.
  4. I've verified that the scheduler is running within the correct environment.

Additional Context

python version : Python 3.10.12
Platform : #40~22.04.1-Ubuntu

@ratnapalshende ratnapalshende changed the title apscheduler not running as the background process [Help Wanted] apscheduler not running as the background process Feb 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant