semvec/pypi-packages huggingface dataset:
django-notifs 4.0.0
Modular notifications for Django
License: MIT
Requires Python: >=3.6.0

[![Documentation](https://readthedocs.org/projects/django-notifs/badge/)](https://django-notifs.readthedocs.io)
[![Maintainability](https://api.codeclimate.com/v1/badges/3f5dd1e1833c12c79db9/maintainability)](https://codeclimate.com/github/danidee10/django-notifs/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/3f5dd1e1833c12c79db9/test_coverage)](https://codeclimate.com/github/danidee10/django-notifs/test_coverage)
[![Pypi](https://img.shields.io/pypi/v/django-notifs.svg)](https://pypi.python.org/pypi/django-notifs)
[![Style guide](https://img.shields.io/badge/code%20style-pep8-green.svg)](https://www.python.org/dev/peps/pep-0008/)

<h3>Modular Notifications (InApp, Email, SMS, CustomBackend etc) for Django</h3>

![django-notifs](./django-notifs.png)

django-notifs is a modular notifications app for Django that basically allows you to notify users about events that occur in your application E.g

- Your profile has been verified
- User xxxx sent you a message

It also allows you to deliver these notifications to any destination you want to with custom delivery channels.

It also supports asynchronous notification with several pluggable delivery backends (e.g Celery, RQ etc)

#### Examples?

A tutorial on how to build a [Realtime Chat application with Vue, django-notifs, RabbitMQ and uWSGI](https://danidee10.github.io/2018/01/01/realtime-django-1.html)

The Repository for the chat app (Chatire) is also available on [github](https://github.com/danidee10/chatire)


#### Documentation
https://django-notifs.readthedocs.io
dynamic-scheduler 1.0.2
动态的带结果保存的定时任务管理器
License: MIT
Requires Python: >=3.6

#  动态的带结果保存的定时任务管理器-DynamicScheduler
## 安装
```ini
pip install dynamic-scheduler
```
## 介绍
    主要是结合 apscheduler 完成定时任务动态修改定时任务功能、增加定时任务结果缓存功能
## test
1. 运行下方demo
2. 重新config类，指定数据库schema
3. 尝试修改数据库表 cron中cron表达式
4. 验证定时任务是否修改
5. 查看apscheduler_jobs表任务结果

## demo
```python
from DynamicScheduler.dynamic_scheduler import DynamicSchedulerProxy
from DynamicScheduler.scheduler_utils import SchedulerConfig

import datetime, os, threading
def task():
    # print(datetime.datetime.now())
    # time.sleep(10)
    print('start time: ', datetime.datetime.now(), os.getpid(), threading.current_thread().name)
    return datetime.datetime.now()

class Config(SchedulerConfig):
    DEFAULT_DB_URL = 'postgresql+psycopg2://postgres:123456@{your_ip}:5432/postgres?utf-8'
    SCHEDULER_SCHEMA = 'public'

s = DynamicSchedulerProxy(config_class=Config)

s.add_job_with_default(func=task, cron_str='* * */5', id='task')
s.clear_history()  # 先清除缓存表
s.add_result_listener()
s.start()
```