dymmond / asyncz Goto Github PK
View Code? Open in Web Editor NEWA python scheduler that simply does the job
Home Page: https://asyncz.dymmond.com
License: MIT License
A python scheduler that simply does the job
Home Page: https://asyncz.dymmond.com
License: MIT License
top right of the repo the link is broken and should go to https://asyncz.tarsild.io
Hello,
I want to use the mongoDB as scheduler store. But adding the configuration of scheduler it raising exceptions.
To configure the scheduler I am doing same as mentioned in the Asyncz documentation.
Issue as:
Traceback (most recent call last):
File "/usr/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/usr/lib/python3.10/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/home/proj.env/lib/python3.10/site-packages/uvicorn/_subprocess.py", line 78, in subprocess_started
target(sockets=sockets)
File "/home/proj.env/lib/python3.10/site-packages/uvicorn/server.py", line 65, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
return future.result()
File "/home/proj.env/lib/python3.10/site-packages/uvicorn/server.py", line 69, in serve
await self._serve(sockets)
File "/home/proj.env/lib/python3.10/site-packages/uvicorn/server.py", line 76, in _serve
config.load()
File "/home/proj.env/lib/python3.10/site-packages/uvicorn/config.py", line 433, in load
self.loaded_app = import_from_string(self.app)
File "/home/proj.env/lib/python3.10/site-packages/uvicorn/importer.py", line 19, in import_from_string
module = importlib.import_module(module_str)
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/home/harshaliz/Desktop/Projects/Playmity/trunk/playmity_be/playmity/main.py", line 19, in <module>
from playmity.startup_scripts import load_permissions, \
File "/home/harshaliz/Desktop/Projects/Playmity/trunk/playmity_be/playmity/startup_scripts.py", line 17, in <module>
from common.decorator import require_application_models
File "/home/harshaliz/Desktop/Projects/Playmity/trunk/playmity_be/common/decorator.py", line 17, in <module>
logger = settings.logger
File "/home/proj.env/lib/python3.10/site-packages/esmerald/utils/functional.py", line 12, in inner
self._setup()
File "/home/proj.env/lib/python3.10/site-packages/esmerald/conf/__init__.py", line 40, in _setup
settings: Type["EsmeraldAPISettings"] = reload_settings()
File "/home/proj.env/lib/python3.10/site-packages/esmerald/conf/__init__.py", line 23, in reload_settings
settings: Type["EsmeraldAPISettings"] = import_string(settings_module)
File "/home/proj.env/lib/python3.10/site-packages/lilya/_internal/_module_loading.py", line 26, in import_string
module = import_module(module_path)
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/home/harshaliz/Desktop/Projects/Playmity/trunk/playmity_be/playmity/configs/development/__init__.py", line 5, in <module>
from .settings import DevelopmentAppSettings
File "/home/harshaliz/Desktop/Projects/Playmity/trunk/playmity_be/playmity/configs/development/settings.py", line 54, in <module>
class DevelopmentAppSettings(AppSettings):
File "/home/harshaliz/Desktop/Projects/Playmity/trunk/playmity_be/playmity/configs/development/settings.py", line 173, in DevelopmentAppSettings
scheduler: AsyncIOScheduler = AsyncIOScheduler(
File "/home/proj.env/lib/python3.10/site-packages/asyncz/schedulers/asyncio.py", line 24, in __init__
super().__init__(**kwargs)
File "/home/proj.env/lib/python3.10/site-packages/asyncz/schedulers/base.py", line 103, in __init__
self.setup(self.global_config, **kwargs)
File "/home/proj.env/lib/python3.10/site-packages/asyncz/schedulers/base.py", line 152, in setup
self._setup(config)
File "/home/proj.env/lib/python3.10/site-packages/asyncz/schedulers/asyncio.py", line 40, in _setup
super()._setup(config)
File "/home/proj.env/lib/python3.10/site-packages/asyncz/schedulers/base.py", line 721, in _setup
self.add_store(value, alias)
File "/home/proj.env/lib/python3.10/site-packages/asyncz/schedulers/base.py", line 320, in add_store
self.wakeup()
File "/home/proj.env/lib/python3.10/site-packages/asyncz/schedulers/utils.py", line 13, in wrapper
self.event_loop.call_soon_threadsafe(wrapped)
AttributeError: 'NoneType' object has no attribute 'call_soon_threadsafe'
Thank you.
Thanks for the lib, it does the job but I'm not clear on how I can pass arg/kwarg(f"{await self.trend.fetch_key_feed()}") to my scheduled fn (self.send_notification).
I created a secondary function for now send_news which work:
I have the following
async def send_news(self):
"""News"""
await self.send_notification(f"{await self.trend.fetch_key_feed()}")
async def plugin_schedule_task(self):
"""Handles task scheduling"""
self.scheduler.add_task(
fn=self.send_news,
trigger=IntervalTrigger(minutes=2),
max_instances=1,
replace_existing=True,
coalesce=True,
is_enabled=True
)
thanks for your guidance @tarsil
How to reproduce:
try to open an discussion from the issue section, it links to the old name
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.