找回密码
 立即注册

QQ登录

只需一步,快速开始

ngqj

银牌会员

271

主题

742

帖子

2831

积分

银牌会员

积分
2831
ngqj
银牌会员   /  发表于:2021-12-10 20:12  /   查看:3009  /  回复:15
10金币
本帖最后由 ngqj 于 2021-12-10 20:43 编辑

我们需要从第三方平台通过http请求取数据保存到数据库表,数量量比较大,也有时效性要求。
其中重要的请求参数就是开始时间和结束时间。
以前我们实现模式是定时3分钟(0.05小时)自动执行,其中开始和结束时间取当前时间的前三分钟及当前时间。
然后出现了两个不友好的问题:
1、由于收到网络等影响,发现少数时候3分钟根本不能完全实现前三分钟数据的请求及保存,甚至有时候跑到了10分钟,这样的话3分钟后不会重新发起计划任务,导致数据掉了不少。
2、由于每次请求时间和通过now()取的时候有误差,虽然最多好像也只有1-2秒   数据也会掉。


今天研究了服务端日志保存到表后,发现有每次请求开始和结束时间。所以有个想法:
1、直接将服务端日志表的请求开始和结束作为时间变量去请求,这一步是没问题的。
2、但是每次计划任务不是定时方式,而是每次请求结束后自动进行进行下一次请求。


文字比较多,望大佬能耐心指导下!

15 个回复

正序浏览
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-12-16 15:27:54
16#
ngqj 发表于 2021-12-16 13:34
感谢!第一个问题已提需求。迁移的事正在琢磨中

不客气,后续有问题欢迎继续发帖交流~
回复 使用道具 举报
ngqj
银牌会员   /  发表于:2021-12-16 13:34:06
15#
感谢!第一个问题已提需求。迁移的事正在琢磨中
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-12-15 17:41:33
14#
ngqj 发表于 2021-12-15 17:12
大佬,还有三个问题,我先描述下,如果必须需要重新提帖子您告知下:
1、重新发布后跑了三次了,但第三次 ...

您好,大佬,麻烦您把问题分开发帖哦,我们尽量保证一个帖子解决一个问题,因为在一个帖子中同时沟通多个问题容易造成信息的混乱和遗漏,而且这样再次遇到相同问题,大家就可以通过帖子题目的关键词进行检索啦您自己查看以往问题也比较方便和清晰。感谢您的理解与支持~

针对您的三个问题,我这里简要回答一下:
1.这里有点没太理解您的问题场景,我们和开发以及产品组的同事沟通需求时也需要更加明确的用户故事和场景,还需要您对此做一些补充,您可以将这个需求发在产品需求版块。
2.相对于依赖网络在不同的服务器间通信,而且网络波动比较大的话,这样做无论是性能还是数据完整性上提升都是比较大的。
3.有具体的操作步骤,您可以先在论坛中搜索相关的操作,都有精华帖~如果还有不确定的地方,我们新帖再见

回复 使用道具 举报
ngqj
银牌会员   /  发表于:2021-12-15 17:12:45
13#
大佬,还有三个问题,我先描述下,如果必须需要重新提帖子您告知下:
1、重新发布后跑了三次了,但第三次就报错了:事务(进程 ID 92)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。  我们现在只能选择延长时间间隔。请问这种机制能修改不?  应该能让用户选择是单次执行启动时间优先还是上一次命令结束优先,不然这个坑太大了。
2、为了保证每次命令能成功,将数据库服务器和应用服务器合并成一台服务器对于这种第三方JSON填充到数据库表里的操作时间节约作用大不大?  如果很重要我们就要来考虑合并服务器。
3、如果要合并,第三个问题就是,将应用服务器迁移的话,操作步骤是什么样的?  因为主要考虑有图片、文档等附件以及哪些日志文件的迁移。

谢谢谢谢谢谢谢
回复 使用道具 举报
ngqj
银牌会员   /  发表于:2021-12-15 17:12:43
12#
大佬,还有三个问题,我先描述下,如果必须需要重新提帖子您告知下:
1、重新发布后跑了三次了,但第三次就报错了:事务(进程 ID 92)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。  我们现在只能选择延长时间间隔。请问这种机制能修改不?  应该能让用户选择是单次执行启动时间优先还是上一次命令结束优先,不然这个坑太大了。
2、为了保证每次命令能成功,将数据库服务器和应用服务器合并成一台服务器对于这种第三方JSON填充到数据库表里的操作时间节约作用大不大?  如果很重要我们就要来考虑合并服务器。
3、如果要合并,第三个问题就是,将应用服务器迁移的话,操作步骤是什么样的?  因为主要考虑有图片、文档等附件以及哪些日志文件的迁移。

谢谢谢谢谢谢谢
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-12-15 16:10:07
11#
本帖最后由 Chelsey.Wang 于 2021-12-15 16:40 编辑

问题跟进:
已远程,后续会在帖子中跟进

问题跟进:
1.没有记录下日志的原因
使用外联库时,创建文本字段时默认的字段长度是500;当日志详细程度设置为最详细时,如果命令中比较复杂,记录下的日志内容比较多,500个字符长度会不够用。

解决方案:
调整日志字段的字段长度,如果使用的是sqlsever数据库可以在外联库中设置字段类型为nvarchar(MAX)

2.服务端命令报错
因为执行SQL命令的结果是一个对象数组,需要取到里面某一项中特定属性的值时,需要先循环数组,然后通过设置变量命令.属性名取值。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
ngqj
银牌会员   /  发表于:2021-12-15 14:29:34
10#
SOS,命令和我发出的DEMO完全一样,按照两种排查过们,都还是没有,并且今天发现另外一个命令也没有了  但还是有其他好几个计划任务是有的,求远程啊
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-12-15 12:31:36
9#
ngqj 发表于 2021-12-15 10:45
转换了也没有,并且其他都有,就这个命令没有,和当时远程的时候一样,重新发布了也不行

如果其他命令都有,只有这个命令没有,感觉是这个命令本身的问题;
您可以按照以下方式排查,进一步缩小问题范围:
1.设置一个条件为服务端命令执行后的计划任务记录日志,看看计划任务中的服务端命令是否能记录下对应的日志。
2.重新设置一个服务端命令以及计划任务,具体内容都copy现在这个命令,看看这个计划任务是否有日志呢?
回复 使用道具 举报
ngqj
银牌会员   /  发表于:2021-12-15 10:45:12
8#
转换了也没有,并且其他都有,就这个命令没有,和当时远程的时候一样,重新发布了也不行
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-12-15 10:16:13
7#
ngqj 发表于 2021-12-14 23:03
小姐姐,抱歉,我们的环境还停留在昨天远程服务端命令在日志表根本没数据的阶段。。。。。。。。。。。
还 ...

之前看您的日志表使用的外联数据库,这个数据库和活字格服务管理器在同一台机器上吗?
另外,如果将日志表转为内建表会有日志吗?(转换为内建表后可以通过获取数据库数据获取服务端对应表中的数据)



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部