| 1808 | def proc_run_tasks_list(filename: str ): |
| 1809 | |
| 1810 | def proc_worker(task_filename:str): |
| 1811 | try: |
| 1812 | task_data_str = read_file(task_filename) |
| 1813 | except: |
| 1814 | return "任务文件不存在" |
| 1815 | task_dict = json.loads(task_data_str) |
| 1816 | os.chdir(PANEL_PATH) |
| 1817 | sys.path.insert(0, PANEL_PATH) |
| 1818 | sys.path.insert(0, "{}/class".format(PANEL_PATH)) |
| 1819 | try: |
| 1820 | import PluginLoader |
| 1821 | import public |
| 1822 | except: |
| 1823 | write_log("PluginLoader 模块不存在") |
| 1824 | try: |
| 1825 | if task_dict['type'] in [2, '2']: |
| 1826 | res = PluginLoader.plugin_run(task_dict['name'], task_dict['fun'], public.to_dict_obj(task_dict['args'])) |
| 1827 | if not res['status']: |
| 1828 | return "插件执行失败: " + res.get('msg', '') |
| 1829 | os.remove(task_filename) |
| 1830 | write_log(task_dict['title'], res['msg']) |
| 1831 | elif task_dict['type'] in [1, '1']: |
| 1832 | # 面板 |
| 1833 | args = public.to_dict_obj(task_dict['args']) |
| 1834 | args.model_index = task_dict['model_index'] |
| 1835 | res = PluginLoader.module_run(task_dict['name'], task_dict['fun'], args) |
| 1836 | os.remove(task_filename) |
| 1837 | write_log(task_dict['title'], res['msg']) |
| 1838 | except: |
| 1839 | err = traceback.format_exc() |
| 1840 | write_log("模块执行失败: ", err) |
| 1841 | os.remove(task_filename) |
| 1842 | |
| 1843 | p = Process(target=proc_worker, args=(filename,), daemon=True) |
| 1844 | p.start() |