请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

xu_Xian

注册会员

3

主题

9

帖子

26

积分

注册会员

积分
26
最新发帖

[已处理] API 初始化问题

xu_Xian
注册会员   /  发表于:2018-10-16 09:22  /   查看:3305  /  回复:10
请教下,现在因为一个业务需求,需要在程序第一次启动时调用 api中的一些 函数 初始化一些参数,请问有什么方法么,我用构造函数可以 完成,但是写了构造函数后,在活字格引入这个带构造函数的api dll后会看不到对应有   get 或 post 特性的对应的函数  。去掉构造函数后可以正常看到

10 个回复

倒序浏览
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2018-10-16 10:10:35
沙发
可以描述下你想要实现的业务方面的功能么?
回复 使用道具 举报
xu_Xian
注册会员   /  发表于:2018-10-16 10:36:12
板凳
就是启动后,需要初始化一些缓存 ,API运行时需要调用的 ,都写好了,但是没有找到对应的 启动时调用一次的函数,现在测试是 用api地址调用下来初始化,
回复 使用道具 举报
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2018-10-16 11:08:43
地板
xu_Xian 发表于 2018-10-16 10:36
就是启动后,需要初始化一些缓存 ,API运行时需要调用的 ,都写好了,但是没有找到对应的 启动时调用一次的 ...

那你是不是可以把你的缓存写成静态变量呢?我不是很确定你为什么要这么做?你初始化的缓存是为了实现什么样的功能么?是否可以详细描述下你的具体功能逻辑,这样我们好帮你判断应该怎样去做。
回复 使用道具 举报
xu_Xian
注册会员   /  发表于:2018-10-16 11:28:07
5#
就是吧数据库的数据 缓存到内纯,减少数据库访问,提高api的性能,已经是静态变量了,初始化的函数也没问题,主要是 活字格在启动时,我需要能自动 调用某个函数,对这些数据进行缓存。
就是API的某写函数需要用到数据库的数据,但是不想每次都读取数据库,所以需要缓存起来。这些参数相对固定,但是又有修改的可能。 但是api在调用前需要 吧 数据先缓存起来。api直接调用
回复 使用道具 举报
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2018-10-16 12:22:04
6#
xu_Xian 发表于 2018-10-16 11:28
就是吧数据库的数据 缓存到内纯,减少数据库访问,提高api的性能,已经是静态变量了,初始化的函数也没问题 ...

是这样的,我理解你是想在用户登录的时候去请求对应的数据库,获取到数据库中的数据,然后缓存到一个变量里,方便后续的其他页面使用。
这样就有几个问题:
1.该数据库的数据如果变了,数据同步的逻辑怎么做?
2.你的逻辑肯定是页面加载时通过get/post请求去将数据请求到一个静态变量里。但是后续其他页面需要使用的时候还是需要写对应的请求去获取你的静态变量。
3.不知道你的数据量有多大,为什么一定要使用缓存机制,活字格本身就可以使用表格一次性将数据获取到页面上,然后通过公式去显示到页面的其他位置中,这种操作并不会多次获取数据库。
4.如果一定要使用缓存机制,前端localstorage是不是更好操作呢。

我想知道你要实现的业务功能是想帮你判断是否需要像你说的那么麻烦,说不定活字格有更好的方式处理你的问题。毕竟我们的底层代码把很多你想到的东西都已经做过了。你如果想自己写编码,那么其他所有的功能逻辑你都得重新开发。
回复 使用道具 举报
xu_Xian
注册会员   /  发表于:2018-10-16 14:29:17
7#
业务需求是 外部硬件通过UDP服务 和服务器的 链接,请求用户信息(用户信息在一千左右),然后服务器通过UDP 返回给设备,这个外部设备数量挺多的,请求的也比较频繁和集中。
我的做法是 用活字格的API 这个功能,编写了一套和硬件交互的代码,全部测试通过了,可以开启监听和发送 UDP 信息了, 请求较为频繁的数据我放到了缓存,以便调用,更新机制也编写了。 现在就差一个能自动启动的机制,我加了定时的机制,但是这个机制只有在定义的时间才会生效,或者定时间间隔执行。不太适合,想在需要一个在活字格应用启动或重启后,会执行的 [特性] 或某个别的机制。来做这个工作
回复 使用道具 举报
kotake
中级会员   /  发表于:2018-10-17 12:18:50
8#
Eric.Liang 发表于 2018-10-16 12:22
是这样的,我理解你是想在用户登录的时候去请求对应的数据库,获取到数据库中的数据,然后缓存到一个变量 ...


我们实现的是,API对接了硬件,视频里面你看到的返回姓名给设备显示,是API 从内存返回的,因为数卡人比较多的时候 不能频繁读数据库,所以我们做的API里面有缓存,就是把数据库里面的数据,我们缓存在内存里。现在的问题是,例如我发布到服务器了,服务运行后,第一次不会自动缓存,需要我在浏览器刷新http://10.0.1.254:8080/customapi/edapi/StartUpServer,这个地址后才会缓存,请问有没有办法,在服务运行后,缓存一次。因为例如我重启了服务器,那么HZG服务就会运行起来,现在是要手动刷新这个地址才会缓存,请问有没有办法在HZG运行起来后执行一次这个地址。

本帖子中包含更多资源

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

x
回复 使用道具 举报
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2018-10-18 10:01:05
9#
kotake 发表于 2018-10-17 12:18
我们实现的是,API对接了硬件,视频里面你看到的返回姓名给设备显示,是API 从内存返回的,因为数卡人 ...

你可以参考下图的做法

因为Timer的最大值限制,最大设置的天数可设置为49天。

本帖子中包含更多资源

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

x
回复 使用道具 举报
kotake
中级会员   /  发表于:2018-10-18 12:10:31
10#
Eric.Liang 发表于 2018-10-18 10:01
你可以参考下图的做法

因为Timer的最大值限制,最大设置的天数可设置为49天。

好的,谢谢啊!~
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部