我正在尝试以分布式模式设置JMeter.我有一个运行ec2 intance的服务器,我希望主服务器在我的本地计算机上运行.我不得不跳过一些希望让RMI在服务器上正常工作但是通过将"java.rmi.server.hostname"设置为ec2实例的IP来解决.
下一个(希望是最后一个)问题是服务器与主服务器进行通信.
问题是,因为我是从内部网络执行此操作,所以当它应该发回我的外部连接的IP时,主机正在发送其本地/内部IP地址(192.168.1.XXX)(92.XXX.XXX. XXX).
我可以在jmeter-server.log中看到这个:
错误 - jmeter.samplers.RemoteListenerWrapper:testStarted(host)java.rmi.ConnectException:连接拒绝主机:192.168.1.50; 嵌套异常是:
那个主机IP是错误的.它应该是92.XXX.XXX.XX地址.我假设这是因为在主日志中我看到以下内容:
2012/07/29 20:45:25 INFO - jmeter.JMeter:IP:192.168.1.50名称:XXXXXX.local全名:192.168.1.50
并且在RMI设置期间将此IP发送到服务器.
所以我认为我有两个选择:
但我看不出在哪里设置这些命令.
任何帮助都会有用.
这个问题与Google对象中的startTimeMillis字段有关Purchases.subscriptions。
如果用户通过Android购买商品,则该应用会将购买数据发送到我们的后端进行验证和处理。Google的响应表单是一个Purchases.subscriptions包含如下所述数据的对象:https : //developers.google.com/android-publisher/api-ref/purchases/subscriptions
在此对象中,有两个字段startTimeMillis和expiryTimeMillis。
如果购买的详细信息在预定时间之后从后端发送到Google expiryTimeMillis,则我们将获取更新后的新对象expiryTimeMillis。这意味着我们正处于“下一个”续订期。我们的后端使用此新数据创建新记录。工作正常。
但是,我在数据库记录中看到了一些奇怪之处。并在我们编写的代码中。
在上面链接的文档中,它指出startTimeMillis是订购的初始购买日期。因此,如果我今天购买了订阅,那么“ startTimeMillis”将是今天,而“ expiryTimeMillis will be 1 month from now. If I bought the subscription 3 months ago today, then thestartTimeMillis will be 3 months ago and theexpiryTimeMillis”将是从今天起1个月-基本上是两个日期之间有4个月。
但是,这种一致的时间价值startTimeMillis只是在今年才发生。我的订阅已使用了一年多,去年购买的所有商品从那时起一直在更新,从那时起,我的订阅具有不同的价值startTimeMillis。基本上,该startTimeMillis字段始终是当前更新周期的开始时间。
然后在1月中旬的某个时候停止了。在startTimeMillis现在显示订阅购买时间。我有数百个这样的订阅。
这到底是什么时候发生的?又为什么呢?另外,我找不到任何文档,也没有注意到此更改已发生。有人可以阐明这里发生的事情吗?
android subscription in-app-purchase auto-renewing google-play
我找到了解决问题的方法,我想知道它是否有效.这是一个类似的问题:Grails Gorm:Object引用一个未保存的瞬态实例
让我们假设我有两个域对象(名称已更改以保护有罪).
public class Shelf {
String name
Set<Book> books = [] as Set
static hasMany = [books: Book]
}
Run Code Online (Sandbox Code Playgroud)
和
public class Book {
String title
Shelf shelf
}
Run Code Online (Sandbox Code Playgroud)
所以这意味着1个书架包含0到多本书,而一本书只能在一个书架上.
这个架子非常大.在某些时候,它包含80,000本书.全部存储在DB中.当然,添加新书变得越来越慢.
这是通过:
Book book1 = new Book("Awesome Title")
existingShelf.addToBooks(book1)
existingShelf.save(flush: true) // super slow
Run Code Online (Sandbox Code Playgroud)
这很慢.主要是(我假设),因为GORM必须确认其他80,000条记录.
所以我这样做试图解决慢点问题.
Book book2 = new Book("Awesome Title 2")
book2.save(flush: true)
Run Code Online (Sandbox Code Playgroud)
这给了我一个"对象引用一个未保存的瞬态实例",我认为这是有道理的 - "架子"值是空的.
所以我做了一些有点奇怪的事情:
Book book3 = new Book("Awesome Title 3")
book3.shelf = new Shelf()
book3.shelf.id = <known/valid id here>
book2.save(flush: true) …Run Code Online (Sandbox Code Playgroud) amazon-ec2 ×1
android ×1
database ×1
google-play ×1
grails ×1
grails-orm ×1
jmeter ×1
subscription ×1
testing ×1