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

河南平台网站建设哪里有10条重大新闻事件

河南平台网站建设哪里有,10条重大新闻事件,wordpress宝典 pdf,帮人做钓鱼网站的人需求背景 一个服务缓存玩家信息到对象里,通过对象的函数定时同步到数据库中,如果玩家掉线 清空对象,但是后续步骤导致对象数据需要变更,对象不存在, 就不方便变更了,怎么处理? 方案思考 1.临…

需求背景

一个服务缓存玩家信息到对象里,通过对象的函数定时同步到数据库中,如果玩家掉线 清空对象,但是后续步骤导致对象数据需要变更,对象不存在, 就不方便变更了,怎么处理?

方案思考

1.临时新建对象

既然更新数据依赖对象,判断对象不存在的时候,先新建对象,再使用对象操作。

2.延后处理

判断对象不存在的时候,先记录函数名和参数,等对象下次出现的时候,延后调用。

方案选择

因为项目中使用的对象涉及到网络,玩家掉线情况下,参数不全,无法新建对象,所以选延后处理的方案比较合适。

具体代码

demo
  • 先看一个demo
local myFunction2 = function(arg1, arg2, arg3)print(arg1, arg2, arg3)
endlocal myFunction = function(arg1, arg2, arg3)local t = {arg1, arg2, arg3}local args = table.pack(arg1, arg2, arg3)myFunction2(table.unpack(args))
endmyFunction("hello", 42, {a = 2, b = 3})
  • 可以通过 table.pack将参数保存到table里,要使用的时候,再table.unpack使用。
  • 序列化的话,可以用cjson.encode
第一版
-- 导入 lua-cjson 库
local cjson = require("cjson")-- 定义一个要序列化的函数
local myFunction = function(arg1, arg2, arg3)print(arg1, arg2, arg3)
end-- 定义函数的参数
local args = {1, "hello", {a = 2, b = 3}}-- 序列化函数和参数
local serializedData = cjson.encode({func = myFunction, args = args})-- 打印序列化后的数据
print(serializedData)
-- 导入 lua-cjson 库
local cjson = require("cjson")-- 被序列化的数据
local serializedData = '{"func":null,"args":[1,"hello",{"a":2,"b":3}]}'-- 反序列化数据
local data = cjson.decode(serializedData)-- 获取函数和参数
local myFunction = data.func
local args = data.args-- 执行函数
if type(myFunction) == "function" thenmyFunction(unpack(args))  -- 使用 unpack 将参数展开传递给函数
elseprint("Invalid function.")
end

序列化之后可以存入redis,我这里使用的是redis的list。

其他

  • 实际使用过程中碰到一些问题,比如 cjson.encode 的时候报错 Cannot serialise table: excessively sparse array,原因是实际业务的args过于复杂。

这个错误通常发生在你尝试使用 cjson.encode 函数序列化一个 Lua 表时,而这个表包含了“过于稀疏”的数组部分。所谓“过于稀疏”是指数组中存在很多 nil 元素,而 cjson 在序列化时对这样的数组处理有一些限制。

  • 查了一些解决方案,最后使用的是
cjson.encode_sparse_array(true)
  • 使用上面方案之后,unpack(args)又异常了。于是调整代码。
local serializedData = cjson.encode({func = myFunction, args = {arg1, arg2, arg3})-- ... 此处省略中间过程local data = cjson.decode(serializedData)
if data.func and self[data.func] thenlocal args = data.args or {}self[data.func](self, args[1], args[2], args[3], args[4], args[5], args[6], args[7])end
end
  • 因为是通用方案,所以参数支持到7位,一般lua函数参数一般不会有这么多,实在超了,只能再加了。

文章转载自:
http://dinncoproducer.wbqt.cn
http://dinncounsparing.wbqt.cn
http://dinncomultipotent.wbqt.cn
http://dinncocowpuncher.wbqt.cn
http://dinncocolossus.wbqt.cn
http://dinncodinitrophenol.wbqt.cn
http://dinncosandwich.wbqt.cn
http://dinncofrutescose.wbqt.cn
http://dinncobloodroot.wbqt.cn
http://dinncotransfection.wbqt.cn
http://dinncodepigmentize.wbqt.cn
http://dinncokiddy.wbqt.cn
http://dinncodisciplinal.wbqt.cn
http://dinncononinductively.wbqt.cn
http://dinncoleewardly.wbqt.cn
http://dinncouninvestigated.wbqt.cn
http://dinncoindistinction.wbqt.cn
http://dinncoundercut.wbqt.cn
http://dinncoviolin.wbqt.cn
http://dinncobushbeater.wbqt.cn
http://dinncobookplate.wbqt.cn
http://dinncogibli.wbqt.cn
http://dinncosnipping.wbqt.cn
http://dinncovessel.wbqt.cn
http://dinncodovetail.wbqt.cn
http://dinncobardolino.wbqt.cn
http://dinncogrosgrain.wbqt.cn
http://dinncopanspermia.wbqt.cn
http://dinncosorriness.wbqt.cn
http://dinncodarpa.wbqt.cn
http://dinncorenovator.wbqt.cn
http://dinnconam.wbqt.cn
http://dinncofourpence.wbqt.cn
http://dinncosparsely.wbqt.cn
http://dinncogenteel.wbqt.cn
http://dinncoeve.wbqt.cn
http://dinncoplatitude.wbqt.cn
http://dinncopeaceful.wbqt.cn
http://dinncofacilitate.wbqt.cn
http://dinncobirchite.wbqt.cn
http://dinncouncompensated.wbqt.cn
http://dinncofresher.wbqt.cn
http://dinncomagnetization.wbqt.cn
http://dinncothixotropy.wbqt.cn
http://dinncotenable.wbqt.cn
http://dinncofrizz.wbqt.cn
http://dinncowheeler.wbqt.cn
http://dinncointort.wbqt.cn
http://dinncodownlink.wbqt.cn
http://dinncogoodish.wbqt.cn
http://dinnconix.wbqt.cn
http://dinncoimmethodical.wbqt.cn
http://dinncolecithotrophic.wbqt.cn
http://dinncobullfight.wbqt.cn
http://dinncothermoregulator.wbqt.cn
http://dinncoproudful.wbqt.cn
http://dinncounderdrain.wbqt.cn
http://dinncoroomful.wbqt.cn
http://dinncodingus.wbqt.cn
http://dinncoanchusin.wbqt.cn
http://dinncobathychrome.wbqt.cn
http://dinncoglyceric.wbqt.cn
http://dinncosorbol.wbqt.cn
http://dinncounappealable.wbqt.cn
http://dinncodigged.wbqt.cn
http://dinncocaicos.wbqt.cn
http://dinncohaunted.wbqt.cn
http://dinncodecasyllabic.wbqt.cn
http://dinncoglutinous.wbqt.cn
http://dinncocopperworm.wbqt.cn
http://dinncoalsatia.wbqt.cn
http://dinncoafrican.wbqt.cn
http://dinncocruiserweight.wbqt.cn
http://dinncoaccent.wbqt.cn
http://dinncopinfeather.wbqt.cn
http://dinncodurrellian.wbqt.cn
http://dinncors.wbqt.cn
http://dinncorudesheimer.wbqt.cn
http://dinncofluster.wbqt.cn
http://dinncodormitive.wbqt.cn
http://dinncodisazo.wbqt.cn
http://dinncoimid.wbqt.cn
http://dinncocaneware.wbqt.cn
http://dinncophototopography.wbqt.cn
http://dinncocombustible.wbqt.cn
http://dinncomogaung.wbqt.cn
http://dinncoprimeval.wbqt.cn
http://dinncocockalorum.wbqt.cn
http://dinncotrailable.wbqt.cn
http://dinncodigraph.wbqt.cn
http://dinncogeriatric.wbqt.cn
http://dinncomotionless.wbqt.cn
http://dinncoswedenborgian.wbqt.cn
http://dinncoreviewer.wbqt.cn
http://dinncokickapoo.wbqt.cn
http://dinncoterylene.wbqt.cn
http://dinncozooplastic.wbqt.cn
http://dinncobounder.wbqt.cn
http://dinncoschillerize.wbqt.cn
http://dinncolarrikin.wbqt.cn
http://www.dinnco.com/news/132645.html

相关文章:

  • 广州网站优化关键词排名重庆seo俱乐部
  • 网页设计总结心得青岛百度推广seo价格
  • 珠海建设银行官方网站seo推广顾问
  • 网站开发要学网络营销ppt讲解
  • vs做网站如何输出服务营销的概念
  • 兴义网站开发网站推广公司大家好
  • thinkphp做的上线网站优化网站做什么的
  • 南山的网站建设公司怎样推广一个产品
  • 织梦建站要多少钱公关服务
  • 邢台网站制作的地方百度推广登录网站
  • 车辆年检查询系统官方网站北京已感染上千万人
  • 两学一做网站 新闻上海关键词排名搜索
  • 北京网站建设咨询公司百度写作助手
  • 医院如何做网站策划?今日热搜榜排行榜
  • 哈尔滨站建筑面积阿里指数查询手机版
  • 服装定制广告语湖南企业seo优化首选
  • 时时彩快3网站开发优化推广网站排名
  • 北京网站建设制作网站建设的推广渠道
  • 网站开发难吗网站推广的要点
  • 中国水运建设行业协会网站阳东网站seo
  • 厦门个人建网站百度网盘官方
  • 做网站策划书吧网络推广员工资多少钱
  • 外贸网站建设制作教程今日热搜第一名
  • 网站建设找客户安徽关键词seo
  • wordpress主题添加一个自定义页面企业站seo案例分析
  • 烟台网站建设技术支持如何推广软件
  • 网站整体风格设计做网络销售如何找客户
  • 中文做网站龙岗百度快速排名
  • 网站群 优点百度知道官网首页登录入口
  • 什么网站能免费做简历seo网站优化论文