我正在寻找有关如何限制对我们为业务合作伙伴提供的API的访问和记录调用的想法,以便与我们的客户服务应用程序进行交互.我们是否应该像我们自己的员工一样为外部合作伙伴创建用户名和密码?是否有.Net的某种管理单元可以管理访问限制和计量,还是我们必须自己动手?
我们应该支持哪些格式?JSON是规范的,还是有一些我需要知道的新东西?
我是新手提供软件即服务,并且会喜欢一些建议,包括一个我可以检查提示的开源.Net项目.
编辑:现在有丰厚的新鲜感!
编辑:添加内容以回答一些问题
这将是我们的合作伙伴用于访问我们的客户服务功能的API,例如创建新帐户,进行付款和其他帐户管理功能.
我熟悉PostSharp并且已经为方法调用生成了具有日志记录功能的技术演示.
我不想调查我们的合作伙伴他们喜欢哪种格式/协议,因为其中一个要求是能够在没有IT参与的情况下添加新合作伙伴.我只想提供一些关于最佳实践的技巧,以便我们以"正确"的方式做到这一点,并且他们可以遵守.
我正在搞乱Geodjango,我只是想在数据库中添加一个简单的多边形字段,然后在其上运行一个多边形点,以确保一切正常.
这是我在views.py中的代码:
#adding a polygon
pe = PolygonExample.objects.create(name="uk_polygon", poly="POLYGON((58.768200159239576, -12.12890625, 58.49369382056807 1.1865234375, 49.18170338770662 -12.9638671875, 50.2612538275847 5.537109375))" )
#doing the point-in-polygon check
result = PolygonExample.objects.filter(poly__contains='POINT(52.696361078274485 -0.87890625)')
Run Code Online (Sandbox Code Playgroud)
这是我在models.py中的内容:
class PolygonExample(models.Model):
name = models.CharField(max_length=16, db_index=True)
poly = models.PolygonField()
objects = models.GeoManager()
Run Code Online (Sandbox Code Playgroud)
但是当我尝试添加多边形(PolygonExample.objects.create)时,我收到一个错误:"检查从GEOS C函数"GEOSWKTReader_read"返回的Geometry时遇到错误.
我添加多边形的代码是错误的吗?我不确定我是否理解如何直接插入纬度/经度坐标.
或者这是GEOS安装错误?
谢谢.
Java内存泄漏
private boolean refreshResponseWindow(MessageObject message) {
this.responsePanel.removeAll();
this.responsePanel.add(message.buildGUI());
this.responsePanel.validate();
message = null;
return true;
Run Code Online (Sandbox Code Playgroud)
}
发生的问题是当我收到越来越多的消息时,我的Java程序的内存使用量继续增长,最终导致它被锁定.我已将内存泄漏隔离到上面的代码,特别是添加过程调用.我假设removeAll会清除我面板的内容,但它似乎仍在继续增长.
注意:message.buildGUI()返回一个显示在responsePanel上的JPanel
跟进:
BuildGUI代码如此显示
public JPanel buildGUI() throws Exception {
JPanel busPanel = new JPanel();
busPanel.setLayout(new GridBagLayout());
busPanel.setPreferredSize(new Dimension(Globals.panelW, Globals.panelH));
busPanel.setMinimumSize(new Dimension(Globals.panelW, Globals.panelH));
final JLabel headingLabel = new JLabel();
headingLabel.setFont(new Font("", Font.PLAIN, 18));
headingLabel.setText(this.name);
final GridBagConstraints gridBagConstraints_heading = new GridBagConstraints();
gridBagConstraints_heading.gridwidth = 2;
gridBagConstraints_heading.gridy = 0;
gridBagConstraints_heading.gridx = 0;
busPanel.add(headingLabel, gridBagConstraints_heading);
//Many more gui components marked as final
return busPanel;
Run Code Online (Sandbox Code Playgroud)
返回的面板没有监听器仅用于显示目的.
在验证数据时,我养成了做以下事情的习惯
*注意:我每次检查都没有真正的布尔值.这只是一个例子.
*另一个注意事项:测试期间的任何错误处理都已正确完成.try-catch中抛出的唯一异常是我自己的.
try {
if (validCheckOne = false) {
throw new Exception("Check one is bad");
}
if (validCheckTwo = false) {
throw new Exception("Failed because of check2");
}
if(validCheckTen = false) {
throw new Exception("Yet another failure on your part: check10.");
}
} catch(Exception e) {
MessageBox.Show("Your stupid data is wrong! See for yourself: " + e.Message);
}
Run Code Online (Sandbox Code Playgroud)
这是不好的做法吗?抛出异常会减慢程序的执行速度还是不可取的?
我有一个异步应用程序执行多个线程在套接字上执行操作,其中调度操作然后异步执行.
我试图避免在第一次操作开始执行之前,一旦在套接字上调度了读操作,套接字被关闭并重新打开(可能是另一个操作中的另一个对等体)的情况,这将最终读取正确的文件描述符但错误的同伴.
问题来了,因为(accept(); close(); accept())在accept()中返回相同的fd,这可能导致上述情况.
我看不到避免它的方法.
任何提示?
我正在尝试执行一个返回大结果的postgresql查询:
connection.setAutoCommit(false);
st = connection.createStatement(
ResultSet.CONCUR_READ_ONLY,
ResultSet.TYPE_FORWARD_ONLY
);
st.setFetchSize(100);
logMemory();
System.out.println("start query ");
rs = st.executeQuery(queryString);
System.out.println("done query ");
logMemory();
Run Code Online (Sandbox Code Playgroud)
但这会占用大量内存:
Free memory; 4094347680 (= 3905 mb).
start query
done query
Free memory; 2051038576 (= 1956 mb).
Run Code Online (Sandbox Code Playgroud)
(使用Runtime.getRuntime()打印.freeMemory())
到目前为止,它的工作原理,但数据库将会更大.我不需要记忆中的整个结果; 我只需要处理每一行,将结果写入磁盘并转到下一行.
我知道'setFetchSize'只是一个提示,但是如果postgresql/jdbc会忽略它,我会觉得很奇怪,因为它已经存在了很长时间.
有办法解决这个问题吗?到目前为止,我唯一的想法是创建一个批处理脚本,将查询结果流式传输到磁盘,然后从Java解析文件...
<form name='form1'> <select name='sel1'></select> </form> <script> document.form1.sel1 ... //access element by it's name attribute, is this standard? </script>
我正在尝试使用C变量在C代码中使用汇编.我的代码看起来像这样:
__asm { INT interruptValue };
Run Code Online (Sandbox Code Playgroud)
其中'interruptValue'是我从用户那里获得的变量(例如15或15h).当我尝试编译时,我得到:
汇编程序错误:'无效的指令操作数'
我不知道interruptValue的正确类型是什么.我尝试了长\ int\short\char\char*,但没有一个工作.
我正在开发的系统是一个Intranet系统,只能在公司网络中访问我们的员工.这是存储所有客户数据的主要系统.该系统完全基于Web.每个客户都需要捕获并保存大量数据.此时打开客户记录会显示所有信息是输入框等,以便用户可以更改它们并单击保存按钮进行更新.整个页面上的字段大约有40到50页.还有一个带顶部导航栏的顶级导航栏.
我们决定开展页面的设计和布局.第一步是创建详细视图和编辑视图.目前没有详细信息视图,所有内容都显示在相同的编辑字段中.
您对提高Intranet数据库系统的可用性有任何好的想法(基于Web)
给定1D数组值,最简单的方法是找出最合适的双峰分布是什么,每个"模式"是正态分布?或者换句话说,如何才能找到两个正态分布的组合,以便再现一维数组?
具体来说,我有兴趣在python中实现它,但答案不一定是语言特定的.
谢谢!