• 注册
  • 发动态
  • 发帖子
  • 发视频
  • 发红包
  • 暂没有数据

  • 推荐
  • 视频
  • 关注
  • 瓷器
  • 字画
  • 玉石
  • 钱币
  • 铜器
  • 木器
  • 紫砂
  • 杂项
  • [ls_fbk]
  • 查看全文
  • 查看作者
  • 宫论项目开发记录

    记录2023年项目进度周期。

  • 2
  • 693
  • 0
  • 15.21w
  • 小小乐小可鸭鸭

    请登录之后再进行评论

    登录
  • 0
    小小乐lv.2实名用户
    2025年7月4日
    1、在重构【xc_corn_daily_check】后,已移除【fail】变量,因为【fail】的业务处理现在通过【xc_corn_daily_fail】机制进行,因此不需要在验证阶段传递该参数,这样的方法既不可靠也不安全。当任务执行失败出现异常时,只需统一进行【xc_corn_daily_fail】回调处理,该机制会自动对【corn_daily】进行重写,确保业务的一致性。这样,【xc_corn_daily_check】只需专注于对【corn_daily】进行验证即可,无需对失败进行回调修改。这种设计简化了任务验证的过程,使其更加专注和高效,同时通过集中处理失败的回调,提升了系统的安全性和稳定性,确保任务调度的逻辑清晰明确。通过这种优化,系统能够更有效地管理任务执行和异常处理,进一步提高了整体操作的可靠性。
    2、重构后的【gl_corn_daily】(宫论定时计划执行-每日固定任务计划)和【gl_corn_execution】(宫论定时计划执行-定时周期计划)现已具备多项高级功能,旨在提升任务执行的可靠性和效率。首先,引入了Redis拦截机制,以防止任务的重复执行,确保任务在设定周期内只执行一次。此外,这两个模块均配备了上锁保护处理,以确保执行周期严格符合后台的设定要求,从而避免因周期错乱导致的执行问题。异步请求处理功能则保证在开启异步任务时,任务能够被Swole服务器正确接受和处理。系统还具备日志处理能力,当发生错误或异常时,会自动记录详细日志,帮助管理员快速定位和解决问题。计时器统计功能则在任务执行成功后,记录每日成功执行的数量,为后续分析和优化提供数据支持。特别是【gl_corn_daily】,在任务执行失败时还具备重试机制,会进行多次尝试直到达到设定的重试次数上限。这些功能的整合不仅提升了任务调度的稳定性和安全性,也增强了系统的整体性能和可维护性。通过这些优化设计,系统能够更有效地管理复杂的任务调度,确保每个任务都能够在合适的时间和条件下顺利执行。
    3、在宫论任务系统中,除了每日固定计划和周期性计划之外,还新增了一个名为【xc_daily_plan_hook】的00:00重置计划。该任务在每日凌晨触发,专门用于重置和更新一些系统参数,以确保系统的正常运行和数据的一致性。具体来说,【xc_daily_plan_hook】负责清理Redis相关缓存,例如计数器数据,确保缓存数据不过期或错误累积。此外,它还会重置用户的每日字段参数,包括用户每日拦截器、短信发送限制、发帖限制等,以便用户在新的一天能够重新获得这些权限。该计划还会处理超过60分钟未在线但仍存在【client_id】的用户记录,确保用户数据的准确性和系统资源的合理使用。这些处理逻辑主要针对拦截器和用户每日行为限制的管理,通过【xc_daily_plan_hook】的整合,每日00:00系统会自动释放和更新相关额度。】
    4、【xc_daily_plan_hook】作为每日00:00清理计划的钩子,不需要传递任何变量参数,它在内部会读取任务组并按照批次进行执行。为了确保上级能够了解整体的执行效果,该方法会返回一个标准的数组结构。返回结果包括两个字段:首先是【code】状态标识,其中1表示执行未完成,表明执行过程中出现了意外或其他特殊情况。管理运维成员可以通过【msg】字段获取具体的执行中断原因,以便快速定位和解决问题。若【code】为0,则表示执行成功,整个流程顺利完成,当日的重置工作已经结束。
    5、在【xc_daily_plan_hook】的初始化阶段,会对【result】进行空数组处理,以便后续记录任务执行的状态和结果。接下来,它将执行一系列业务逻辑,首先是定时清理Redis相关缓存。这项清理工作包括以下几方面:首先,清理每日记录,例如用户行为日志和报警信息,具体操作是调用【clean_redis_key('day:*')】来移除相关键值。其次,进行有序集合的清理,使用【delete_redis_group('sortedset:day_')】来删除相关数据。在处理有序集合时,还会判断当前日期是否为周一、每月1号或1月1号。这是因为有序集合的处理涉及复杂的重置操作。例如,在周一需要将本周的数据清理,并将之前的统计数据划分为上周记录。同样的逻辑适用于每月的1号和每年的第一天,以确保统计数据的准确性和可靠性。这种处理方式不仅保证了数据的及时更新和清理,还确保了统计信息的有效性,为后续的数据分析和决策提供了可靠的基础。这种周密的设计使得【xc_daily_plan_hook】能够高效地管理和维护系统中的关键数据,为系统的稳定运行和用户的良好体验提供了重要支持。
    6、为了提高【delete_redis_group】方法的性能,对其进行了重构优化。该方法负责处理Redis缓存,通过使用SCAN命令自动获取所有以指定【$prefix】开头的键名,然后执行删除操作。然而,之前的实现采用了逐个执行DEL命令的方式,这在处理大量任务时会导致严重的性能瓶颈,处理时间过长,影响系统的效率。因此,重构后的方法在获取所有键名队列后,将这些键名合并到一个待删除数组中,随后进入Pipeline模式。通过将DEL命令添加到Pipeline中,系统能够一次性执行所有删除操作。这种优化方式显著减少了命令执行的次数,通过单次命令的执行即可完成所有键名的删除请求,避免了逐一处理的低效问题。这种批处理方式不仅提高了Redis操作的速度和效率,还有效降低了系统资源的消耗,使得任务执行更加流畅和高效,为系统的稳定运行提供了更强的支持。通过这种优化,【delete_redis_group】方法能够更好地满足高负载下的缓存清理需求,确保系统性能和响应速度的提升。
    7、在使用【delete_redis_group】进行Redis键名组清理时,为了避免因并发执行导致的重复发起和进程冲突,系统引入了一种上锁机制,作为进程锁,以确保任务执行的安全性和可靠性。该锁通过系统内部方法进行管理,其标识基于传递的【prefix】(前缀名称),并设置了10秒的有效期。在上锁保护期内,同一时间仅允许一个清理任务进行执行,从而避免了因多任务同时操作而可能引发的数据不一致或资源竞争问题。当清理任务完成后,系统会主动释放进程锁,以确保后续的请求能够顺利进入并继续处理。通过这种机制,系统能够在保证任务执行顺序的同时,最大限度地减少并发冲突的风险,从而提升任务的可靠性和稳定性。这种上锁设计为高并发环境下的任务调度提供了有效保障,使【delete_redis_group】方法在多任务场景中依然能够高效、安全地完成清理工作。
    8、在【xc_daily_plan_hook】的执行过程中,除了通过【delete_redis_group】进行用户缓存参数的清理外,还会调用【daily_plan_user_meta】来重置用户资料字段。这一方法通过【wpdb】执行SQL语句,将一系列用户自定义字段重置为0。这些字段包括:用户在线状态【online】、每日回收申请次数【apply_day】、短信每日验证次数【phone_day】、异地登录短信提醒次数【xc_day_login_security】、今日消息总数【today_msg】、用户今日发送消息记录【send_msg_times】、用户私信发送图片次数【day_im_image】、用户私信发送视频次数【day_im_video】以及今日用户下载视频次数【video_download_today】。通过重置这些字段,系统能够在每日任务中清零用户的相关操作计数,从而确保用户的使用记录能够在新的一天得到准确的统计和管理。
    9、在【xc_daily_plan_hook】完成Redis相关清理操作后,还需要对WebSocket产生的【client_id】进行清理。宫论的WebSocket逻辑设计高度优化,在绝大多数场景(约99%)下,能够在用户离线或断开连接时自动清理【client_id】,确保连接状态的准确性。然而,在某些极端环境下,例如设备意外断电或网络突然中断,用户的【client_id】可能无法及时清理,导致前端(APP或网页端)出现状态异常——用户实际上已经离线,但系统仍标记其为在线。这种异常状态会影响前端的判断逻辑和用户体验,因此需要额外的清理机制来解决。为此,将这一清理动作安排到【xc_daily_plan_hook】中进行,通过每日计划任务对滞后处理的【client_id】进行集中清理,确保连接状态的准确性和一致性。此机制不仅能解决因极端情况引发的用户状态异常问题,还进一步增强了系统的稳定性和可靠性,避免因在线状态误判造成的用户困扰和功能异常,为用户提供更流畅的交互体验。
    10、新增【xc_delete_client_id_hook】专门用于清理那些距离上次在线时间已超过30分钟,但【client_id】仍然存在的用户记录。该处理方式相对简单且高效:每当用户通过WebSocket连接时,系统会使用【update_user_meta】更新其【client_id】和【online_status】两个字段,其中【online_status】记录最后的在线时间。如果检测到【client_id】存在,而【online_status】的时间已经超过30分钟,则系统会主动通过【delete_user_meta】进行删除,以确保强制将用户下线。这一机制不仅有助于保持用户在线状态的准确性,还能有效清理因长时间未更新而产生的冗余数据。为了避免误操作,该方法被绑定到【xc_daily_plan_hook】,并仅在每日凌晨触发一次。这样做可以确保清理操作在系统负载较低时进行,减少对用户体验的影响,同时保证数据的整洁和系统的稳定运行。
    11、【xc_daily_plan_hook】目前默认执行的动作包括三个方面:首先是清理与Redis相关的缓存,其次是重置每日需要更新的用户字段,最后是清理因WebSocket意外断开而仍标记为在线的用户状态。此外,系统还支持【xc_corn_plan_group】数组配置,允许通过内置方法挂载后台配置的计划组,在每日00:00时主动触发的函数。这意味着除了默认的三个清理动作之外,还可以在后台定时计划组(00:00清理配置组)中自定义添加一些函数,作为任务扩展的一部分。在完成默认清理任务后,能够顺利触发其他自定义函数,进一步优化系统的整体运行效率和用户体验。
  • 0
    小小乐lv.2实名用户
    2025年7月3日
    1、在【xc_corn_daily_callback】完成对【$corn_daily[key]】的封装处理后,系统会通过【update_option】进行更新操作,将当前任务标记为已完成。这种处理方式确保当【xc_log_daily_warn】验证触发时,系统能够检测到【next_time】已经更新至第二天,从而跳过当天的执行阶段。通过这种机制,任务执行过程能够实现每日仅触发一次,避免重复执行。这不仅优化了任务调度的效率,还提高了系统资源的利用率,确保任务执行的准确性和稳定性。这样的设计对于维护系统的整体性能和确保任务的有效管理至关重要。
    2、通过xc_corn_daily_callback触发回调处理的时候,会触发计数器动作,记录每日固定时间任务的执行成功次数。计数器的标识为(corn_daily_success)统计操作通过xc_redis_count完成,用于记录所有每日固定任务执行。后续可以通过get_redis_count($key)方法获取详细的统计数据。该功能支持多维度查询统计,包括总数、今日、昨日、本周、上周、本月、上月、今年及去年等时间维度,能够全面呈现不同时间段内任务执行情况,为后续分析和管理提供了便捷的数据支持。注:只要触发xc_corn_daily_callback基本就说明任务已完成处理。
    3、【xc_corn_daily_callback】的执行场景是在定时任务顺利完成业务逻辑处理的情况下触发。如果任务执行失败,则需要触发另一种回调处理,记录任务执行失败的原因以及失败次数。这样,系统可以避免陷入无限重复执行的循环,同时允许管理和运维人员通过日志记录了解具体的失败原因,以便进行进一步的修复和调整。执行失败的处理回调是通过【xc_corn_daily_fail】事件来实现的。这一机制不仅保障了系统的稳定性和可靠性,还为问题的快速定位和解决提供了有效的支持。通过精确记录失败信息,运维人员能够更高效地优化系统,确保未来任务的顺利执行。
    4、xc_corn_daily_fail触发的时候需要主动传递一个key变量,这个变量是任务唯一标识,需要通过这个标识去匹配任务场景,如果未提供或者提供的标识与系统不匹配,会造成执行回调错误。除了key在触发错误记录的时候,还需要提供另外一个变量参数msg:字符串类型,任务执行失败是有原因的,比如是接口故障,参数错误,请求异常等等,需要通过msg将任务的执行错误原因同步过来,后续将通过日志或者报警的形式,将错误记录下来,方便运维排查。
    5、为了确保返回结果能够被直接接收和处理,在触发【xc_corn_daily_fail】错误回调时,系统会对【result】进行初始化,将其标记为空数组。后续的处理也遵循标准数组结构进行返回,固定返回值包括【code】和【msg】两个部分。其中,【code】用于表示处理状态:如果返回值为0,表示执行完毕,所有相关的业务逻辑已成功写入并执行;如果返回值为1,则表示处理中断,执行失败。在处理失败的情况下,可能会有多种原因,系统会通过【msg】详细描述具体的错误原因。这种设计不仅确保了返回结果的规范性和一致性,还为问题的快速定位和解决提供了明确的指导,帮助运维人员迅速采取相应措施,以提高系统的稳定性和可靠性。
    6、在触发【xc_corn_daily_fail】事件时,系统会进行一系列基础拦截验证,以确保处理过程的安全性和可靠性。整个验证过程如下:首先,通过【xc_get_option】读取相应的【xc_corn_daily】配置组信息,然后使用【xc_is_config】进行【key】匹配处理,并将返回的结果保存到【daily_group】。接着,对【daily_group】进行验证处理,如果为空,则返回相应的错误信息;如果不为空,则进一步检查【open】字段是否启用,如果未启用,说明任务已停用,此时也会返回错误并终止执行。最后,对【msg】参数进行检查,检测是否存在特殊字符,以防止SQL注入风险等安全问题。只有在上述验证过程中没有发现任何异常的情况下,系统才会进入执行阶段。
    7、在【xc_corn_daily_fail】完成基础验证后,整个处理流程如下:首先检查【corn_daily】是否存在,该参数通过【corn_daily】读取,保存着每个任务的执行进度。如果【corn_daily】不存在,则初始化为一个空数组,并将【$corn_daily[key]['fail']】标记为1,表示第一次失败。如果【corn_daily】已经存在,则在原有的【fail】值基础上进行加1处理,以记录失败次数。接下来,通过【update_option】对其进行更新操作,将执行失败的次数更新到配置组中。这一机制确保了失败次数的准确记录。在后续的【xc_corn_daily_check】中验证任务是否可执行时,会检查【fail】的重试次数,如果达到预设的上限,则系统会主动跳过该任务的处理,以避免重复执行和资源浪费。
    8、如果每日定时任务(该任务类型每天指定事件触发一次,如果触发失败)将会通过xc_corn_daily_fail进行日志写入,记录执行失败的原因。日志的格式为:[时间:' . date("Y-m-d H:i:s") . '] - [执行函数:' . $key . '] - [错误原因:' . msg . '],日志将通过【xc_log_error_warn】来完成处理,确保所有异常信息都能够被系统完整记录并妥善保存。同时该日志仅触发错误记录,并不会触发运维报警机制。完成日志的写入后,将会返回code=0,标记整个执行过程结束。
    9、经过优化处理,【xc_corn_daily_fail】现在通过【xc_get_option】读取【xc_log_daily_warn】配置,该配置设定了每日重试次数的固定计划。系统会检测当前任务的失败次数【$corn_daily[key]['fail']】。如果该次数大于或等于后台设定的值,系统将不再对【fail】进行计数加1处理,而是采取以下措施:首先,将【fail】计数清零,以避免对任务失败次数的进一步累积。接下来,系统会读取当前任务的每日执行时间,并进行格式化处理,以获取对应的时间戳。然后,在该时间戳的基础上增加86400秒(即一天的秒数),将更新后的时间写入【next_time】,确保任务在一天后重新执行。这一优化设计的目的是为了避免任务在同一天内因反复失败而浪费系统资源,同时确保任务能够在后续日期正常进行。
    10、xc_corn_daily_fail完成封装,整个处理流程如下:任务标识验证:检查传入的 key 是否有效,确保任务唯一标识存在且与系统匹配。通过 xc_get_option 获取每日任务配置组信息,并匹配任务场景。验证任务是否启用,若未启用则直接返回错误信息。对 msg 参数进行过滤,确保不存在特殊字符,避免安全风险(如 SQL 注入)。如果 corn_daily 数据不存在,则初始化为一个空数组,并将 fail 计数设置为 1。如果任务已存在,则对当前的失败次数进行累加,并通过 update_option 将更新后的数据保存到系统配置中。重试次数检测:检查当前任务的失败次数是否达到后台设定的重试次数上限(通过 xc_log_daily_warn 配置)。如果达到上限: 将失败计数清零,避免进一步累积。 计算下一次执行时间(当前时间 + 一天的秒数),并更新任务的 next_time 字段,确保任务在第二天重新执行。错误日志写入:通过 xc_log_error_warn 写入日志,记录任务失败的时间、任务标识 (key)、以及失败原因 (msg)。 日志格式为:[时间:...] - [执行函数:...] - [错误原因:...]。 日志用途:仅用于记录失败信息,不触发运维报警机制。标准化返回值: 成功处理:返回 ['code' => 0, 'msg' => '任务失败记录完成']。处理中断:返回 ['code' => 1, 'msg' => '具体错误原因']。
    11、由于新增了【xc_corn_daily_fail】错误回调机制,在任务执行失败时,系统会自动读取后台设置,并在重试次数达到上限时自动重置两个变量:将【fail】设为0,并将【next_time】更新为明天的时间戳。因此,【xc_corn_daily_check】的处理逻辑可以进行优化,不再需要在内部验证【fail】参数。是否具备执行条件只需通过对比【next_time】的时间戳与当前时间戳,符合时间即可允许执行。这种设计简化了任务调度的逻辑,使其更加高效和直接。需要注意的是,由于执行逻辑高度依赖【xc_corn_daily_fail】和【xc_corn_daily_callback】,因此每日固定计划必须严格遵循回调处理,以确保【corn_daily】数组的一致性。
  • 0
    小小乐lv.2实名用户
    2025年7月2日
    1、在【xc_corn_daily_check】功能中新增了一个可选变量【fail】,其默认值为【false】。当将该变量标记为【true】时,意味着本次任务执行失败,将触发错误重试机制。在任务执行过程中,系统会检查【$corn_daily[key]['fail']】是否存在。如果该变量存在,则会对计数器进行【+1】处理,累加本次任务的执行失败次数。通过这种设计,系统能够记录任务失败的频率,并在达到预设的失败次数阈值后,触发相应的业务逻辑处理。这一机制不仅提升了系统的鲁棒性,还为故障恢复提供了一个自动化的解决方案,确保任务在出现异常时能够及时采取补救措施,维护系统的正常运行和稳定性。
    2、在后台系统中新增了一个可选变量【xc_log_daily_warn】,用于灵活控制任务的重试次数。此前,该参数是通过固定值5来定义的,这种设置限制了系统的灵活性。为了满足后续需求,尤其是在调试过程中,开发运维人员需要能够灵活调整该参数,以便任务能够重新执行。例如,当A任务出现执行失败并触发日志写入时,开发人员可以通过修改【xc_log_daily_warn】的设置,来调整任务的重试次数。这种设计不仅提高了任务管理的灵活性,还确保了系统在出现问题后能够迅速进行修复和重试,从而增强任务执行的可靠性。通过允许开发和运维人员动态调整重试次数,系统能够更好地适应不同的业务场景和需求变化,提供更加稳定和高效的服务。
    3、在【xc_corn_daily_check】功能中新增了一个重要的拦截处理机制,以确保任务在执行条件检测时能够安全有效地进行。当系统检测到【$corn_daily[key]['fail']】的执行次数大于或等于【xc_log_daily_warn】时,将会触发拦截机制。此时,系统会直接返回【code=1】,并通过【msg】提示用户:“处理失败:任务当日执行失败次数已超过上限。”这一措施的设计目的是为了防止任务陷入死循环状态,避免其在不具备执行条件的情况下不断触发和执行。通过这种机制,系统能够有效地控制任务的重试频率,防止资源浪费和潜在的系统负载问题。
    4、如果当前任务失败次数已达到系统上限(xc_log_daily_warn),那么除了会返回code=1拦截处理外,还会触发一个日志报警装置,以日志的形式记录任务执行失败情况。具体格式如下:[执行函数] - [' . $key . '] [执行时间] - [' . date("Y-m-d H:i:s") . '] [任务说明] - [' . $name . '] [重试次数] - [' . xc_get_option('xc_log_daily_warn') . ']日志的写入通过宫论通用方法【xc_log_error_warn】进行处理,该方法专门用于错误记录,仅记录相关失败信息,并不会进一步触发报警机制。这一设计旨在为开发和运维人员提供详尽的任务执行失败信息,便于后续分析和问题排查,同时避免因频繁报警影响系统运行或干扰工作。通过该日志记录机制,系统能够清晰地追踪任务的失败原因和重试次数,进一步提升任务管理的透明度与可控性,为后续优化和故障处理提供可靠的数据支持。
    5、在【xc_corn_daily_check】功能中增加了一个至关重要的处理步骤,确保任务在执行的最后阶段能够根据返回的【code】状态进行相应处理。具体而言,如果【code=0】,则意味着任务符合条件并允许执行。在这种情况下,系统会计算出明天的任务执行时间,并将其转换为对应的时间戳,随后写入【next_time】,以确保任务在下次执行时跳过当日的任务处理。而如果【code=1】且执行次数已达上限,系统同样会更新【next_time】到明天的时间戳,以避免当天重复触发任务。通过这一机制,系统不仅能够有效地管理任务的执行频率,还能防止不必要的重复执行,确保资源的合理利用和任务的高效管理。
    6、xc_corn_daily_check完成封装处理,整个执行流程如下:创建一个空数组 $result 用于存储函数的执行结果。获取任务配置和执行记录:corn_daily:从数据库获取当前的任务执行记录。daily_group:从配置中获取每日任务的计划安排。如果 $corn_daily 不是数组或当前任务 $key 没有 next_time,表示任务从未执行过。 遍历 $daily_group 找到匹配的任务配置,获取执行时间 $time 和任务名称 $name。 如果未找到任务配置,返回错误信息 '未找到对应的key,说明任务不存在'。将中文时间格式转换为英文时间格式。 计算当天计划执行的时间戳 $timestamp。 如果当前时间小于计划执行时间,返回 '任务执行周期未到1'。如果任务有执行记录,比较当前时间戳 $timestamp 和下次执行时间戳 $next_timestamp。 如果当前时间小于下次执行时间,返回 '任务执行周期未到2'。如果任务执行失败并且 $fail 为真,增加失败计数。 如果失败次数超过预设的警告次数(xc_get_option('xc_log_daily_warn')),调用 xc_log_daily($key) 记录日志并重置失败计数。 更新失败记录到数据库,并记录日志到指定文件路径。如果所有条件符合,返回 ['code' => 0, 'msg' => '符合执行条件'],表示任务可以执行。
    7、对xc_corn_daily_check进行代码语法优化处理:1、使用 array_filter 和 reset 来获取任务信息,避免了繁琐的循环和条件判断。2、使用 sprintf 来格式化日志内容,使日志的生成更加直观和清晰。3、使用统一的 return 语句来处理不同的返回条件,避免重复代码。4、使用 isset 来检查数组键是否存在,防止未定义数组键导致的错误。5、确保日志记录路径和内容格式正确,使用更具描述性的函数名 xc_log_error_warn。6、在代码开头设置默认返回值 ['code' => 1, 'msg' => '任务执行周期未到'],统一处理返回逻辑。
    8、在执行每日固定计划时,【gl_corn_daily】会通过【xc_corn_daily_check】来验证当前任务是否允许执行,并将验证结果保存到【check】中。如果返回的结果是【code=1】,系统则会跳过本次任务的执行,避免不必要的资源浪费。而当返回【code=0】时,表明任务符合执行条件,此时系统将进一步验证任务的执行方式。如果【$data['asyn']】处于开启状态,系统会通过异步发起执行请求,利用【Swoole】来处理任务,从而提升执行效率和系统响应速度。而如果异步未开启,则任务将通过同步方式执行,确保任务能够按计划稳妥地完成。通过这种灵活的执行机制,系统不仅能够根据实际需求选择合适的执行方式,还能够优化资源使用,提高任务调度的灵活性和效率。这样的设计既增强了系统的适应性,又确保了每日计划的高效实施。
    9、由于每日固定计划中包含错误记录以及执行成功和失败的回调处理,因此需要在每个任务的业务逻辑中增加一个回调处理,以确保其处理状态能够同步到【xc_corn_daily_check】方法中去。如果每个任务都需手动处理这个回调,会导致两个主要问题:首先,每个任务都需要执行相应的业务逻辑,包括写入缓存和更新缓存等操作,增加了开发复杂度;其次,维护起来十分麻烦,若业务层级发生变动,则每个任务都需要进行更新处理,这显然是不理想的。为解决这些问题,系统新增了一个统一的回调方法【xc_corn_daily_ok】,用于集中处理任务的状态同步。此方法不仅简化了任务的开发和维护工作,还确保了任务执行状态的一致性和可靠性。通过【xc_corn_daily_callback】的统一管理,系统能够更高效地处理任务回调,减少冗余代码,提高系统的可维护性和灵活性,为后续的业务扩展提供了更稳固的基础。
    10、在触发【xc_corn_daily_callback】时,必须传递一个固定变量【key】,该变量作为任务的唯一标识,且必须是【xc_corn_daily】配置组的成员。在方法触发时,系统会首先通过【get_option】读取【corn_daily】配置,如果读取结果为空,则会将其设置为空数组,确保后续操作的安全性和稳定性。同时,系统还会通过【xc_get_option】读取【xc_corn_daily】中的相应配置,并对其进行检查。如果【daily_group】为空,则系统将返回阻断处理,以防止无效任务的继续执行。这样的设计不仅确保了任务调用的准确性和配置的完整性,还提高了系统的鲁棒性,防止因配置缺失而导致的潜在错误,从而保障了任务调度的顺畅运行。
    11、【xc_corn_daily_callback】触发后将执行以下步骤:首先,系统会通过【key】遍历每日计划配置,以找到对应的任务。接下来,系统获取任务的执行时间【time】,并通过【str_replace】对其格式进行转换处理,然后使用【strtotime】进行格式化处理,确保时间的标准化。在此过程中,系统还会在原有时间基础上进行加1处理,以更新任务的执行周期。随后,系统会检测【corn_daily】是否存在,如果不存在,则初始化为一个空数组,并对【$corn_daily[key]['number']】进行相同的处理,以确保数据结构的完整性和健壮性。最后,系统封装一个任务数组,其中包含以下参数:首先是【Last_time】,用于记录任务的上次执行时间;其次是【next_time】,用于记录任务的下次执行时间;然后是【number】,用于更新任务的执行次数;最后是【fail】,该参数用于记录执行失败次数,并初始化为1。
  • 查看全文
  • 查看作者
  • 文章测试

    江西·萍乡
  • 4
  • 54
  • 0
  • 14.04w
  • 咸鱼梦想小可鸭鸭小小乐学藏官方

    请登录之后再进行评论

    登录
  • 0
    欣然lv.1
    最低多少钱?最低多少钱?
  • 0
    咸鱼梦想lv.2实名用户
    测试看看最低多少钱?
  • 0
    咸鱼梦想lv.2实名用户
    内容测试出
  • 查看全文
  • 查看作者
  • 鉴定师入驻协议

    欢迎使用宫论APP鉴定师入驻申请功能,本协议主要阐述您申请成为相关领域鉴定师的相关的权利和义务,请您务必仔细阅读。一、概述 1、本协议内容包括协议正文及所有宫论已经发布或将来可能发布的关于鉴定师入驻。所有规则为本协议不可分割的一部分,与协议正文具有同...
  • 学藏官方 学藏官方
  • 3
  • 50
  • 1.7k
  • 官网公告
  • 2023-03-20 09:21 电脑端
  • 查看全文
  • 查看作者
  • 宫论藏品寄售协议

    欢迎使用宫论App藏品寄售申请功能,本协议主要阐述您作为藏品持宝人相关的权利和义务,请您务必仔细阅读。一、概述 1、本协议内容包括协议正文及所有宫论已经发布或将来可能发布的关于藏品寄售的规则。所有规则为本协议不可分割的一部分,与协议正文具有同等法律效...
  • 学藏官方 学藏官方
  • 1
  • 1
  • 1.8k
  • 官网公告
  • 2023-03-17 08:58 电脑端
  • 查看全文
  • 查看作者
  • 藏品回收申请协议

    欢迎使用宫论APP藏品回收功能,本协议主要阐述您作为藏品持宝人相关的权利和义务,请您务必仔细阅读。一、概述 1、本协议内容包括协议正文及所有宫论已经发布或将来可能发布的关于藏品回收的规则。所有规则为本协议不可分割的一部分,与协议正文具有同等法律效力。...
  • 学藏官方 学藏官方
  • 1
  • 1
  • 1.5k
  • 官网公告
  • 2023-03-13 09:29 电脑端
  • 查看全文
  • 查看作者
  • 宫论藏品鉴定协议

    欢迎使用宫论APP鉴赏功能,本协议主要阐述您作为藏品持宝人相关的权利和义务,请您务必仔细阅读。一、概述 1、本协议内容包括协议正文及所有宫论已经发布或将来可能发布的各类规则。所有规则为本协议不可分割的一部分,与协议正文具有同等法律效力。 2...
  • 学藏官方 学藏官方
  • 1
  • 0
  • 1.5k
  • 官网公告
  • 2023-03-11 15:17 电脑端
  • 查看全文
  • 查看作者
  • 淘货发布协议

    淘货发布协议在宫论APP为了能够约束好每个卖家发布商品,也制定了统一的商品发布规范,如果各位也想要开淘宝店铺,那就需要好好去了解一下宫论APP商品的发布规范。第一章 概述第一条【适用范围】适用于在宫论APP发布商品的卖家。第二条【效力级别】本规范已有规定的,适...
  • 学藏官方 学藏官方
  • 2
  • 0
  • 1.6k
  • 官网公告
  • 2023-03-09 15:33 电脑端
  • 查看全文
  • 查看作者
  • 宫论提现协议

    宫论提现协议 《宫论钱包提现协议》(以下简称“本协议”)适用于所有在宫论平台进行提现的用户(以下或称“您”)。本协议被视为《宫论用户服务条款》的补充协议,是其不可分割的组成部分,与其构成统一整体。本协议与《宫论用户服务条款》内容存在冲突的,以本协议为...
  • 学藏官方 学藏官方
  • 2
  • 0
  • 1.5k
  • 官网公告
  • 2023-03-09 11:44 电脑端
  • 查看全文
  • 查看作者
  • 消费者保障服务协议

    本协议由您与济南谋佐科技有限公司共同缔结,本协议具有合同效力。本协议中协议双方合称协议方,济南谋佐科技公司在本协议中亦称为“宫论”。一、协议内容及生效1、本协议内容包括协议正文及所有宫论已经发布或后续发布的相关的规则与协议。前述规则与协议为本协议不可分割的组成...
  • 学藏官方 学藏官方
  • 2
  • 0
  • 1.4k
  • 官网公告
  • 2023-02-25 20:27 电脑端
  • 查看全文
  • 查看作者
  • 店铺保证金协议

    一、什么是店铺保证金?店铺保证金是如果涉及理赔、违规处罚等情况时,可利用店铺保证金进行支付;如没有前述情况,店铺保证金可全额退回的一种机制。二、为什么要缴纳店铺保证金?(1)重点强调-店铺无违规情况认证有效期内且缴纳店铺保证金后下个整点,可搜索到店铺,若未缴纳...
  • 学藏官方 学藏官方
  • 1
  • 0
  • 1.6k
  • 官网公告
  • 2023-02-25 20:20 电脑端
  • 查看全文
  • 查看作者
  • 宫论特殊类目经营资质

    尊敬的宫论商家:为了保障宫论类目健康、提升交易体验、维护商家及买家利益,现对于以下类目入驻认证需提供对应资质:类目店铺类型需要资质陨石骨牙-骨石企业/个人①与平台店铺认证主体信息一致的水野生保护动物经营利用许可证及副本(如许可证上未列举所有可经营物种明细的需额...
  • 学藏官方 学藏官方
  • 1
  • 0
  • 1.6k
  • 官网公告
  • 2023-02-25 20:16 电脑端
  • 单栏布局 列表样式:矩状 侧栏位置: