自动发帖软件
标题:
安卓脚本线程全局变量H5可视化控制台
[打印本页]
作者:
发帖软件
时间:
4 小时前
标题:
安卓脚本线程全局变量H5可视化控制台
安卓脚本线程全局变量H5可视化控制台
1.png
(727.73 KB, 下载次数: 0)
4 小时前
上传
2.png
(710.84 KB, 下载次数: 0)
4 小时前
上传
//用多线程异步子任务运行一个定时
// AIWROK 多线程实时日志监控系统
var threads = {};
var threadStatus = {
countdown: 'running',
randomLetter: 'running',
randomTime: 'running',
randomNumber: 'running'
};
// 辅助函数:将英文状态转换为中文
function getStatusText(status) {
if(status === 'running') return '正在运行';
if(status === 'stopping') return '正在停止';
if(status === 'stopped') return '已停止';
return status;
}
// 日志输出函数 - 同时输出到控制台和H5界面
function logToH5(message, level) {
// 输出到控制台
console.log(message);
// 输出到H5界面(如果LogManagerH5可用)
if(typeof LogManagerH5 !== 'undefined' && LogManagerH5.info) {
try {
switch(level) {
case 'success':
LogManagerH5.success(message);
break;
case 'warn':
LogManagerH5.warn(message);
break;
case 'error':
LogManagerH5.error(message);
break;
case 'gold':
LogManagerH5.gold(message);
break;
default:
LogManagerH5.info(message);
}
} catch(e) {
// 如果H5日志失败,至少控制台有输出
}
}
}
// 线程1: 倒计时线程 (每10分钟倒计时)
threads.countdown = new thread().runJsCode(function fun(){
logToH5("[倒计时线程] 启动 - 开始10分钟倒计时", 'info');
var startTime = Date.now();
while(threadStatus.countdown === 'running') {
var elapsed = Math.floor((Date.now() - startTime) / 1000);
var remaining = 600 - elapsed; // 10分钟 = 600秒
if(remaining <= 0) {
logToH5("[倒计时线程] 倒计时结束!", 'success');
break;
}
logToH5("[倒计时线程] 剩余时间: " + remaining + " 秒", 'info');
sleep.second(1);
}
threadStatus.countdown = 'stopped';
logToH5("[倒计时线程] 已停止", 'warn');
}, "-倒计时线程")
// 线程2: 随机字母生成线程
threads.randomLetter = new thread().runJsCode(function fun(){
logToH5("[随机字母线程] 启动", 'info');
while(threadStatus.randomLetter === 'running') {
var letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var randomIndex = Math.floor(Math.random() * letters.length);
var randomLetter = letters.charAt(randomIndex);
logToH5("[随机字母线程] 生成随机字母: " + randomLetter, 'gold');
sleep.second(1);
}
threadStatus.randomLetter = 'stopped';
logToH5("[随机字母线程] 已停止", 'warn');
}, "-随机字母线程")
// 线程3: 随机时间段显示线程
threads.randomTime = new thread().runJsCode(function fun(){
logToH5("[随机时间线程] 启动", 'info');
while(threadStatus.randomTime === 'running') {
var hours = Math.floor(Math.random() * 24);
var minutes = Math.floor(Math.random() * 60);
var seconds = Math.floor(Math.random() * 60);
var timeStr = String(hours).padStart(2, '0') + ':' +
String(minutes).padStart(2, '0') + ':' +
String(seconds).padStart(2, '0');
logToH5("[随机时间线程] 随机时间: " + timeStr, 'info');
sleep.second(1);
}
threadStatus.randomTime = 'stopped';
logToH5("[随机时间线程] 已停止", 'warn');
}, "-随机时间线程")
// 线程4: 随机数字生成线程
threads.randomNumber = new thread().runJsCode(function fun(){
logToH5("[随机数字线程] 启动", 'info');
while(threadStatus.randomNumber === 'running') {
var randomNumber = Math.floor(Math.random() * 1000); // 0-999之间的随机数
logToH5("[随机数字线程] 生成随机数字: " + randomNumber, 'success');
sleep.second(1);
}
threadStatus.randomNumber = 'stopped';
logToH5("[随机数字线程] 已停止", 'warn');
}, "-随机数字线程")
// 线程5: 监控线程 - 获取其他线程状态并在10秒后停止所有线程
threads.monitor = new thread().runJsCode(function fun(){
logToH5("[监控线程] 启动 - 将监控其他线程状态", 'info');
var startTime = Date.now();
var elapsedSeconds = 0;
// 辅助函数:将英文状态转换为中文
function getStatusText(status) {
if(status === 'running') return '正在运行';
if(status === 'stopping') return '正在停止';
if(status === 'stopped') return '已停止';
return status;
}
// 监控10秒钟
while(elapsedSeconds < 10) {
logToH5("[监控线程] 当前各线程状态 (已运行 " + elapsedSeconds + " 秒):", 'info');
logToH5(" - 倒计时线程: " + getStatusText(threadStatus.countdown), 'info');
logToH5(" - 随机字母线程: " + getStatusText(threadStatus.randomLetter), 'info');
logToH5(" - 随机时间线程: " + getStatusText(threadStatus.randomTime), 'info');
logToH5(" - 随机数字线程: " + getStatusText(threadStatus.randomNumber), 'info');
sleep.second(1); // 使用second代替millisecond
elapsedSeconds++;
}
logToH5("[监控线程] 10秒已到,正在停止所有线程...", 'warn');
// 更新状态标记
threadStatus.countdown = 'stopping';
threadStatus.randomLetter = 'stopping';
threadStatus.randomTime = 'stopping';
threadStatus.randomNumber = 'stopping';
// 等待一小段时间让其他线程检测到状态变化并自行停止
sleep.second(1);
// 强制停止所有工作线程
try {
if(threads.countdown && threads.countdown.isAlive()) {
threads.countdown.interrupt();
logToH5("[监控线程] 已中断倒计时线程", 'success');
}
} catch(e) {
logToH5("[监控线程] 停止倒计时线程时出错: " + e.message, 'error');
}
try {
if(threads.randomLetter && threads.randomLetter.isAlive()) {
threads.randomLetter.interrupt();
logToH5("[监控线程] 已中断随机字母线程", 'success');
}
} catch(e) {
logToH5("[监控线程] 停止随机字母线程时出错: " + e.message, 'error');
}
try {
if(threads.randomTime && threads.randomTime.isAlive()) {
threads.randomTime.interrupt();
logToH5("[监控线程] 已中断随机时间线程", 'success');
}
} catch(e) {
logToH5("[监控线程] 停止随机时间线程时出错: " + e.message, 'error');
}
try {
if(threads.randomNumber && threads.randomNumber.isAlive()) {
threads.randomNumber.interrupt();
logToH5("[监控线程] 已中断随机数字线程", 'success');
}
} catch(e) {
logToH5("[监控线程] 停止随机数字线程时出错: " + e.message, 'error');
}
logToH5("[监控线程] 所有线程已停止,脚本即将结束", 'success');
// 最后停止所有脚本
stopAll();
}, "-监控线程")
logToH5("所有线程已启动,监控线程将在10秒后停止所有其他线程", 'success');
复制代码
欢迎光临 自动发帖软件 (http://www.fatiegongju.com/)
Powered by Discuz! X3.2