funboost icon indicating copy to clipboard operation
funboost copied to clipboard

funboost mysql

Open xmlgrg opened this issue 1 year ago • 17 comments

我不打算用 celery,因为他没办法和mysql完美的结合,我打算测试一下你这个 产品

xmlgrg avatar Aug 05 '22 06:08 xmlgrg

你用mysql做消息队列吗是想?

ydf0509 avatar Aug 05 '22 06:08 ydf0509

有这个想法,因为不想在公司的机器上 安装其它的 消息队列,本身定时任务也就只有2个,主要是为了把定时任务和django结合

xmlgrg avatar Aug 05 '22 06:08 xmlgrg

可以的,选peewe中间件就好了

ydf0509 avatar Aug 05 '22 06:08 ydf0509

测试案例:

image

报错: 2022-08-08 12:18:06 - _WorkItem - "D:\DjangoProjects\adminlayui\venv\lib\site-packages\funboost\concurrent_pool\custom_threadpool_executor.py:73" - run - ERROR - 函数 _run 中发生错误,错误原因是 <class 'TypeError'> inner() missing 1 required positional argument: 'self' Traceback (most recent call last): File "D:\DjangoProjects\adminlayui\venv\lib\site-packages\funboost\concurrent_pool\custom_threadpool_executor.py", line 71, in run result = self.fn(*self.args, **self.kwargs) File "D:\DjangoProjects\adminlayui\venv\lib\site-packages\funboost\consumers\base_consumer.py", line 667, in _run self._confirm_consume(kw) File "D:\DjangoProjects\adminlayui\venv\lib\site-packages\funboost\consumers\peewee_conusmer.py", line 28, in _confirm_consume self.queue.set_success(kw['job_id']) File "D:\DjangoProjects\adminlayui\venv\lib\site-packages\funboost\queues\peewee_queue.py", line 83, in set_success ModelSelect.for_update() TypeError: inner() missing 1 required positional argument: 'self'

数据库信息: image

xmlgrg avatar Aug 08 '22 04:08 xmlgrg

测试案例:

image

报错: 2022-08-08 12:18:06 - _WorkItem - "D:\DjangoProjects\adminlayui\venv\lib\site-packages\funboost\concurrent_pool\custom_threadpool_executor.py:73" - run - ERROR - 函数 _run 中发生错误,错误原因是 <class 'TypeError'> inner() missing 1 required positional argument: 'self' Traceback (most recent call last): File "D:\DjangoProjects\adminlayui\venv\lib\site-packages\funboost\concurrent_pool\custom_threadpool_executor.py", line 71, in run result = self.fn(*self.args, **self.kwargs) File "D:\DjangoProjects\adminlayui\venv\lib\site-packages\funboost\consumers\base_consumer.py", line 667, in _run self._confirm_consume(kw) File "D:\DjangoProjects\adminlayui\venv\lib\site-packages\funboost\consumers\peewee_conusmer.py", line 28, in _confirm_consume self.queue.set_success(kw['job_id']) File "D:\DjangoProjects\adminlayui\venv\lib\site-packages\funboost\queues\peewee_queue.py", line 83, in set_success ModelSelect.for_update() TypeError: inner() missing 1 required positional argument: 'self'

数据库信息: image

peewee_queue.py的 83行的 ModelSelect.for_update() 需要注释掉,测试代码忘掉了注释。

ydf0509 avatar Aug 08 '22 05:08 ydf0509

还有一个问题: SQLAlchemy-Utils 模块 要加在你的基础里面 11:04:24 "D:\DjangoProjects\adminlayui\venv\lib\site-packages\funboost\queues\sqla_queue.py:24" No module named 'sqlalchemy_utils'

xmlgrg avatar Aug 08 '22 05:08 xmlgrg

我故意删除了sqlachmy和sqlalchemy_utils的自动安装,这个太常用了,且这两个包的版本要紧密配合,而且容易和用户自己的版本冲突。以后推荐用新加的peewee。如果用户要使用就自己手动安装。

ydf0509 avatar Aug 08 '22 05:08 ydf0509

好的~

xmlgrg avatar Aug 08 '22 05:08 xmlgrg

框架支持kombu,kombu支持sqlachmy。所以也可以使用kombu作为kroker_kind

ydf0509 avatar Aug 08 '22 05:08 ydf0509

框架支持kombu,kombu支持10种消息队列。kombu就是celery的消息队列,celery是支持mysql servelsql sqlite作为消息队列的。只是网上celery例子90%是redis做消息队列,5%是rabiitmq做消息队列,其他的消息中间件代码例子少

ydf0509 avatar Aug 08 '22 05:08 ydf0509

看到了,确实 挺好的,我听说你有qq群?

xmlgrg avatar Aug 08 '22 05:08 xmlgrg

看到了,确实 挺好的,我听说你有qq群?

文档就写了qq群了

ydf0509 avatar Aug 08 '22 05:08 ydf0509

celery 使用mysql做 消息队列 就是少,很多都是 redis,公司的机器 限制也较多,唉

xmlgrg avatar Aug 08 '22 05:08 xmlgrg

我还有一个问题,定时任务开启后,,如果使用 代码关闭呢?

xmlgrg avatar Aug 08 '22 05:08 xmlgrg

我到时候 会在 django上做一个关闭和开启的按钮,现在就是 这个关闭代码 逻辑是啥,还没弄明白

xmlgrg avatar Aug 08 '22 05:08 xmlgrg

定时任务暂时是使用内存的。但要是动态前端添加定时任务,可以自己用apschudler包添加定时任务,apssheduler存储选择使用mysql,apscheduler使用mysql是官方自带的功能。

你要写的定时任务的函数逻辑就是发布消息。

ydf0509 avatar Aug 09 '22 08:08 ydf0509

我已经 可以写入 mysql,现在在测试 通过pid 去关闭任务呢

xmlgrg avatar Aug 09 '22 08:08 xmlgrg

已经解决了

xmlgrg avatar Aug 11 '22 08:08 xmlgrg

新增了 funboost + dajngo + 函数中操作了orm 的demo

https://github.com/ydf0509/funboost_django_orm_demo/tree/main

ydf0509 avatar Jan 12 '24 09:01 ydf0509