나는 파이썬을 사용하여 프로젝트를 구축 중이다. 내가 apscheduler를 사용하고 있으므로 일부 작업을 예약해야합니다. 스케줄러는 Windows Apache에서 잘 작동합니다. 하지만 아마존 우분투 인스턴스로 프로젝트를 옮겼을 때 모든 작업이 일정한 시간 간격 후에 실행되지만 한번 대신 두 번 실행되는 문제에 직면하고 있습니다. 그래서 모든 작업이 동시에 두 번 실행됩니다. 모든 것이 Windows 인스턴스에서 잘 작동합니다 ... wsgi-python을 사용하고 있습니다. 다음은 아래 파이썬, Apscheduler 문제 - 한번 대신 두 번 실행되는 작업
import os
import sys
sys.path.append('C:/Django/sweetspot/src/sweetspot')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings_server'
from jobs.FeedAndNews import FeedParse, NewsParse
from apscheduler.scheduler import Scheduler
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
today = datetime.datetime.today()
nex = datetime.timedelta(hours=1)
startsat = today + nex
timestr = startsat.strftime("%Y-%m-%d %H:%M:%S")
scheduler = Scheduler()
scheduler.start()
scheduler.add_interval_job(FeedParse, hours=1, start_date=timestr)
scheduler.add_interval_job(NewsParse, hours=1, start_date=timestr)
파이썬과 apcheduler의 버전입니다 .. 내 WSGI 파일입니다 파이썬 2.7, apscheduler-2.1.1
누군가가 문제를 식별 좀 도와 주실 래요 .. 당신의 도움을 주셔서 감사합니다. 미리 감사드립니다.
urls.py에 스케줄러 코드를 추가하고 wsgi.py에서 삭제했습니다. 이제는 작업이 한 번 실행되지만 반 시간이 지나면 다시 실행됩니다. 예를 들어 1 시간을 주면 30 분 후에 같은 작업의 다른 인스턴스가 시작됩니다 ... – planet260
Apache에서 Apache를 사용하는 경우/mod_wsgi를 사용하여 WSGI 응용 프로그램을 여러 프로세스에서 동시에 실행할 수 있습니다. Windows 에서처럼 하나의 프로세스 만 사용하는 경우에는 Apache/mod_wsgi를 적절히 구성해야합니다. 대부분 mod_wsgi 데몬 모드를 사용합니다. http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading을 참조하십시오. –