pixelarraylib 1.0.5__tar.gz → 1.0.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pixelarraylib-1.0.5/pixelarraylib.egg-info → pixelarraylib-1.0.6}/PKG-INFO +1 -1
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/__init__.py +1 -1
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/monitor/feishu.py +1 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/scripts/__init__.py +1 -1
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/system/common.py +39 -1
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6/pixelarraylib.egg-info}/PKG-INFO +1 -1
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pyproject.toml +1 -1
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/LICENSE +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/MANIFEST.in +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/README.md +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/__main__.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/aliyun/__init__.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/aliyun/acr.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/aliyun/aliyun_email.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/aliyun/billing.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/aliyun/content_scanner.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/aliyun/domain.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/aliyun/eci.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/aliyun/ecs.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/aliyun/eip.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/aliyun/fc.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/aliyun/oss.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/aliyun/sms.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/aliyun/sts.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/db_utils/mysql.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/db_utils/redis.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/decorators/__init__.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/decorators/decorators.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/gitlab/__init__.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/gitlab/code_analyzer.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/gitlab/pypi_package_manager.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/monitor/__init__.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/net/request.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/scripts/build_website.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/scripts/collect_code_to_txt.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/scripts/create_test_case_files.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/scripts/nginx_proxy_to_ecs.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/scripts/remove_empty_lines.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib/system/__init__.py +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib.egg-info/SOURCES.txt +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib.egg-info/dependency_links.txt +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib.egg-info/entry_points.txt +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib.egg-info/requires.txt +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/pixelarraylib.egg-info/top_level.txt +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/requirements.txt +0 -0
- {pixelarraylib-1.0.5 → pixelarraylib-1.0.6}/setup.cfg +0 -0
|
@@ -14,6 +14,7 @@ class Feishu:
|
|
|
14
14
|
"llm微服务报警": "https://open.feishu.cn/open-apis/bot/v2/hook/54942aa6-24f1-4851-8fe9-d7c87572d00a",
|
|
15
15
|
"thirdparty微服务报警": "https://open.feishu.cn/open-apis/bot/v2/hook/b1e6237a-1323-4ad9-96f4-d74de5cdc00f",
|
|
16
16
|
"picturebed服务报警": "https://open.feishu.cn/open-apis/bot/v2/hook/d3c2e68c-3ed3-4832-9b66-76db5bd69b42",
|
|
17
|
+
"picturetransform服务报警": "https://open.feishu.cn/open-apis/bot/v2/hook/e975aa0a-acef-4e3f-bee4-6dc507b87ebd",
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
def __init__(self, channel_name):
|
|
@@ -3,16 +3,54 @@ import json
|
|
|
3
3
|
import re
|
|
4
4
|
import subprocess
|
|
5
5
|
import traceback
|
|
6
|
-
from typing import Union, List, Generator
|
|
6
|
+
from typing import Callable, Union, List, Generator, Any
|
|
7
7
|
from cryptography.fernet import Fernet
|
|
8
8
|
import base64
|
|
9
9
|
from pixelarraylib.monitor.feishu import Feishu
|
|
10
10
|
import os
|
|
11
11
|
import paramiko
|
|
12
|
+
from concurrent.futures import ProcessPoolExecutor
|
|
12
13
|
|
|
13
14
|
feishu_alert = Feishu("devtoolkit服务报警")
|
|
14
15
|
|
|
15
16
|
|
|
17
|
+
def execute_function_in_other_process(function: Callable, *args, **kwargs) -> Any:
|
|
18
|
+
"""
|
|
19
|
+
description:
|
|
20
|
+
在其他进程中执行函数
|
|
21
|
+
parameters:
|
|
22
|
+
function(Callable): 需要执行的函数
|
|
23
|
+
args(tuple): 函数的参数
|
|
24
|
+
kwargs(dict): 函数的关键字参数
|
|
25
|
+
return:
|
|
26
|
+
result(Any): 函数执行结果
|
|
27
|
+
"""
|
|
28
|
+
with ProcessPoolExecutor() as executor:
|
|
29
|
+
return executor.submit(function, *args, **kwargs).result()
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
async def execute_function_in_other_process_async(
|
|
33
|
+
function: Callable, *args, **kwargs
|
|
34
|
+
) -> Any:
|
|
35
|
+
"""
|
|
36
|
+
description:
|
|
37
|
+
在其他进程中异步执行函数
|
|
38
|
+
parameters:
|
|
39
|
+
function(Callable): 需要执行的函数
|
|
40
|
+
args(tuple): 函数的参数
|
|
41
|
+
kwargs(dict): 函数的关键字参数
|
|
42
|
+
return:
|
|
43
|
+
result(Any): 函数执行结果
|
|
44
|
+
"""
|
|
45
|
+
loop = asyncio.get_event_loop()
|
|
46
|
+
with ProcessPoolExecutor() as executor:
|
|
47
|
+
# 在线程池中运行阻塞的executor.submit操作
|
|
48
|
+
result = await loop.run_in_executor(
|
|
49
|
+
None, lambda: executor.submit(function, *args, **kwargs).result()
|
|
50
|
+
)
|
|
51
|
+
return result
|
|
52
|
+
|
|
53
|
+
|
|
16
54
|
async def execute_batch_async_tasks(tasks, semaphore_count=None):
|
|
17
55
|
if semaphore_count is None:
|
|
18
56
|
return await asyncio.gather(*tasks)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|