TB(terabytes) of task crontab table data manager with web or code easily
Project description
tasktb
极简的任务管理系统 (两行代码实现任务接受、生成、任务参数缓存过滤、优先级排序、分布式分发、频控等),基于HTTP接口或者python SDK进行任务管理 两行代码即可快速实现生产者-消费者模型,并可控制优先级,开始暂停、周期任务、自动下发消息队列(redis)等
START
- 服务端:启动web管理界面和接口
pip install tasktb
python -m tasktb.ctl start -p 5127 -u 'mysql+pymysql://mq:1234qwer@127.0.0.1:3306/test' -h '0.0.0.0' -l './tasktb.log'
- 客户端:通过python sdk进行任务读写
from tasktb import Tab
tb = Tab('127.0.0.1:5127', project='p1', tasktype='t1')
print(tb.set(value="http://a.com", status=0, priority=0b11110000, period=0, qid=None, timecanstart=None))
print(tb.get(size=1))
print(tb.update_tasks([
{'value': "http://a.com"},
],
status=1
))
MORE
- 更多服务端启动方式启动web管理界面和接口
pip install tasktb
# 代码直接启动服务,方便调试
import tasktb
tasktb.run_all(
host="0.0.0.0", port=5127, redis_host='127.0.0.1',
redis_port=6379, redis_db_task=11, file='tasktb.db')
tasktb.run_all(
host="0.0.0.0", port=5127, redis_host='127.0.0.1',
redis_port=6379, redis_db_task=11, url='sqlite+aiosqlite:///:memory:')
tasktb.run_all(
host="0.0.0.0", port=5127, redis_host='127.0.0.1',
redis_port=6379, redis_db_task=11, url='mysql+pymysql://mq:1234qwer@127.0.0.1:3306/test')
# 前台启动服务,方便调试
python -m tasktb.ctl run -p 5127 -u 'mysql+pymysql://mq:1234qwer@127.0.0.1:3306/test'
# 或者后台启动(只适用于Linux),运用sqlite数据库,-f指定数据的保存文件位置,方便备份和加密迁移,-p指定服务端的监听端口, -h指定服务绑定IP
python -m tasktb.ctl start -p 5127 -f './tasktb.db' -h '0.0.0.0'
# 或者后台启动(只适用于Linux),运用mysql,tidb等数据库,-u指定数据库的连接URL,-p指定服务端的监听端口, -h指定服务绑定IP
python -m tasktb.ctl start -p 5127 -u 'mysql+pymysql://mq:1234qwer@127.0.0.1:3306/test' -h '0.0.0.0' -l './tasktb.log'
# 然后就可以浏览器访问 http://127.0.0.1:5127 查看数据
# 目前支持4种关系型数据库
'sqlite+aiosqlite:///:memory:'
'mysql+aiomysql://mq:1234qwer@127.0.0.1:3306/test'
'sqlite+aiosqlite:///tasktb.db'
'postgresql+asyncpg://user:pass@hostname/dbname'
# 停止程序,只适用于Linux
python -m tasktb.ctl stop -p 5127
# 查看当前运行程序,只适用于Linux
python -m tasktb.ctl show
# 手动输入命令后台启动,日志写入tasktb.log
nohup python3.9 -m tasktb.ctl run -p 5127 -f './tasktb.db' > tasktb.log 2>&1 &
- 更多客户端任务管理
from tasktb import Tab
tb = Tab('127.0.0.1:5127', project='p1', tasktype='t1')
print(tb.set("http://a.com", status=0))
print(tb.set_many([f"http://a.com?s={i}" for i in range(10000)], status=0))
print(tb.get(size=100))
print(tb.update_tasks([
{'value': 1},
{'value': 2},
],
status=1
))
sqlite upgrade
如果使用sqlite作为任务管理数据库而且版本过低,需要更新
1.查看软连接版本
/usr/bin/sqlite3 --version
2.备份旧的sqlite3
sudo mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
3.将新的sqlite3软连接到原来sqlite3位置
cp tasktb/sqlite/sqlite3 ~/sqlite3
#ln -s /usr/local/sqlite/bin/sqlite3 /usr/bin/sqlite3
sudo ln -s ~/sqlite3 /usr/bin/sqlite3
原文链接:https://blog.csdn.net/Meteor31/article/details/109557703
* 编译最新版本的 sqlite3
# https://charlesleifer.com/blog/compiling-sqlite-for-use-with-python-applications/
wget https://www.sqlite.org/src/tarball/sqlite.tar.gz
tar xzf sqlite.tar.gz
cd sqlite/
#./configure
export CFLAGS="-DSQLITE_ENABLE_FTS3 \
-DSQLITE_ENABLE_FTS3_PARENTHESIS \
-DSQLITE_ENABLE_FTS4 \
-DSQLITE_ENABLE_FTS5 \
-DSQLITE_ENABLE_JSON1 \
-DSQLITE_ENABLE_LOAD_EXTENSION \
-DSQLITE_ENABLE_RTREE \
-DSQLITE_ENABLE_STAT4 \
-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT \
-DSQLITE_SOUNDEX \
-DSQLITE_TEMP_STORE=3 \
-DSQLITE_USE_URI \
-O2 \
-fPIC"
export PREFIX="/usr/local"
LIBS="-lm" ./configure --disable-tcl --enable-shared --enable-tempstore=always --prefix="$PREFIX"
make
sudo make install
* 备份文件 /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6
* 从编译目录复制文件~/sqlite-autoconf-3310100/.libs/libsqlite3.so.0.8.6 到/usr/lib/x86_64-linux-gnu/
* 安装编译版本(sudo make install)
https://sqlite.org/forum/forumpost/4691e7792b62dca4
sqlite3 --version
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tasktb-1.0.11.tar.gz
(40.6 kB
view details)
Built Distribution
tasktb-1.0.11-py3-none-any.whl
(42.2 kB
view details)
File details
Details for the file tasktb-1.0.11.tar.gz
.
File metadata
- Download URL: tasktb-1.0.11.tar.gz
- Upload date:
- Size: 40.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c611789d26ef422d10206e5d63fef91ad14e09ceac24d3b27bf9bf3e5a32604 |
|
MD5 | f8f2fbde8429f0b0d2d5d3c151dc665c |
|
BLAKE2b-256 | 806bdb2a95c48be9bee05f7eeedc18e5c46dcb7d5fb46af6374fad336bb157b6 |
File details
Details for the file tasktb-1.0.11-py3-none-any.whl
.
File metadata
- Download URL: tasktb-1.0.11-py3-none-any.whl
- Upload date:
- Size: 42.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b32e0b79e7870034afa05c803457b7b292f12c1c82efc9e4d3601be3855e11e8 |
|
MD5 | 78ff762d29d65dc0a05e335ff68e00b5 |
|
BLAKE2b-256 | 980850e92cbb7e3574c9f0fe346ddcccf2f45e19b552a73e3e2539f04df92170 |