当前位置: 首页 > news >正文

如何用服务器ip地址做网站近两年成功的网络营销案例

如何用服务器ip地址做网站,近两年成功的网络营销案例,学做网站记不住代码,外包做的网站 需要要源代码吗引言 由于项目中有处理大量后台任务并且串行执行的需求,特意写了一个简易的任务调度器,方便监控每个任务执行和异常情况,任务之间互不影响。正如上所述,Kotlin中的TaskScheduler类提供了一个强大的解决方案,用于使用S…

引言

由于项目中有处理大量后台任务并且串行执行的需求,特意写了一个简易的任务调度器,方便监控每个任务执行和异常情况,任务之间互不影响。正如上所述,Kotlin中的TaskScheduler类提供了一个强大的解决方案,用于使用ScheduledExecutorService异步地排队和执行任务。


使用方法

1.初始化:

val taskListener = object : TaskScheduler.TaskListener {override fun beforeExecute(task: TaskScheduler.NamedRunnable) {println("开始任务:${task.name}")}override fun afterExecute(task: TaskScheduler.NamedRunnable, exception: Exception?) {println("完成任务:${task.name},异常:$exception")}
}
val scheduler = TaskScheduler(taskListener, 5)

2.提交任务:

scheduler.submit("加载数据") {// 加载数据的代码
}
scheduler.submit("处理数据") {// 处理数据的代码
}

3.优雅关闭:

当所有任务完成后,调度器将在指定的超时后自动关闭,确保不浪费资源。


完整代码

import java.util.concurrent.*
import java.util.concurrent.atomic.AtomicBooleanclass TaskScheduler(private val listener: TaskListener? = null, private val timeout: Long = 5) {private val taskQueue = ConcurrentLinkedQueue<NamedRunnable>()private val isTaskRunning = AtomicBoolean(false)private var executorService: ScheduledExecutorService? = null@Synchronizedfun submit(name: String, task: Runnable) {ensureExecutorService()taskQueue.offer(NamedRunnable(name, task))if (isTaskRunning.compareAndSet(false, true)) {executorService?.submit { processTasks() }}}private fun processTasks() {try {while (taskQueue.isNotEmpty()) {val nextTask = taskQueue.poll()listener?.beforeExecute(nextTask)var exception: Exception? = nulltry {nextTask.run()} catch (e: Exception) {exception = e}listener?.afterExecute(nextTask, exception)}} finally {isTaskRunning.set(false)scheduleShutdown()}}private fun ensureExecutorService() {if (executorService == null || executorService!!.isShutdown) {executorService = Executors.newSingleThreadScheduledExecutor()println("ensureExecutorService newSingleThreadScheduledExecutor")}}private fun scheduleShutdown() {executorService?.schedule({if (taskQueue.isEmpty() && isTaskRunning.compareAndSet(false, true)) {executorService?.shutdown()executorService = nullprintln("scheduleShutdown shutdown")} else {isTaskRunning.set(false)  // 确保新任务可以触发执行器重启}}, timeout, TimeUnit.SECONDS)}interface TaskListener {fun beforeExecute(task: NamedRunnable)fun afterExecute(task: NamedRunnable, exception: Exception?)}class NamedRunnable(val name: String, private val task: Runnable) : Runnable {override fun run() {task.run()}}
}

最后

简要概括下优缺点:

  • 资源自动管理,超时自动释放资源
  • 任务命名,更清晰的了解每个任务执行情况
  • 线程安全,不用担心多线程添加任务导致顺序紊乱

优点:

  • 灵活性:允许动态添加任务,并根据任务负载需要创建或关闭执行器,从而管理执行器的生命周期。

缺点:

  • 单线程限制:当前实现使用单线程执行器,这意味着任务是顺序执行的,而不是并行执行。这可能是CPU密集型任务的瓶颈。
http://www.mmbaike.com/news/72752.html

相关文章:

  • 做社交网站开发java培训班学费一般多少
  • 百捷网站建设爱站工具包的主要功能
  • 织梦网站下载如何提交百度收录
  • 开源手机建站系统海外推广是做什么的
  • 大型旅游网站东莞百度网站排名优化
  • 手机网站制作移动高端网站建设外链管理
  • 内部网站建设教程百度广告一天多少钱
  • 网址和网站的区别深圳市网络品牌推广
  • 网站开发需求说明广告优化师培训
  • 网站推广方法主要有网站seo推广
  • 佛山建网站费用北京seo课程培训
  • 用c 做的网站怎么打开网推平台有哪些
  • 可以做直播源的佛教网站武汉seo排名
  • 网上做批发有哪些网站靠谱seo工资一般多少
  • 凤凰军事新闻最新消息seo优化软件大全
  • 泉州市建设局网站珠海百度seo
  • 和小男生做的网站网络营销技巧
  • 弹性web做网站好不好wifi优化大师下载
  • 房产网站系统源码谷歌官网
  • 网站需要多大宽带佛山网站定制
  • 网站建设与管理任务分工百度导航下载2021最新版
  • 商城类网站设计制作seo排名关键词
  • 企业网站建设免费郑州seo优化公司
  • github做网站速度快吗站长工具权重
  • 顺德网站制作案例咨询查域名网站
  • 建域名网站需要多少钱免费外链网盘
  • 怎么写网站头部和尾部网站搜什么关键词好
  • 网站建设做的好的公司百度提交入口网址
  • 开放平台架构保定seo排名外包
  • 东城免费做网站站长工具站长