我正在研究 Javaee Batch API (jsr-352),以测试使用此技术为我们自己的解决方案更改当前 ETL 工具的可行性。
我的目标是建立一份工作,在其中我:
我想处理每个项目而不是写入文件,而是将其发送到下一步。并且还存储信息以供进一步使用。我可以使用 batchlets 和jobContext.setTransientUserData().
我想我没有理解正确的概念:据我所知,JSR-352 适用于这种 ETL 任务,但它有两种类型的步骤:块和批处理。块是“三阶段步骤”,其中读取、处理和写入数据。Batchlets 是不是对数据上的每个项目都执行的任务,而是一次(如计算总数、发送电子邮件等)。
我的问题是,如果我考虑批次的定义,我的解决方案是不正确的。
如何使用 Javaee Batch API 实现这种 kinf od 作业?
我正在开发一个小项目,我想我可以尝试一些我不知道的东西,这样我就可以学到新东西.我有一组消息,叫做msgs.我想只过滤未读的,然后将其设置为"读取".为此,我用这个lambda表达式调用了Where方法,我想我会得到一个未读的所有消息的列表.现在我想将值设置为"Read"(将"T"指定给MessageRead属性).有没有办法使用lambda表达式?
我得到了这个代码,但是"All"方法不是我所要求的,我只是发现它检查列表中的所有元素是否符合这个条件.
msgs.Where(message => message.MessageRead == 'F').All(message => message.MessageRead = 'T');
Run Code Online (Sandbox Code Playgroud)
非常感谢,奥斯卡
我在使用Minitest的Ruby应用程序中开始使用DDD和TDD.我创建了一个存储库类(没有数据库访问,但它为我生成了实体).这是一个单身人士.
我想测试实体的生成.问题是因为它是一个单例,测试的执行顺序会影响结果.
有没有办法强制处理单身元素,使其"新鲜"?
这是我的存储库代码:
require "singleton"
class ParticipantRepository
include Singleton
def initialize()
@name_count = 0
end
def generate_participant()
participant = Participant.new
participant.name = "Employee#{get_name_count()}"
return participant
end
private
def get_name_count()
old_name_count = @name_count
@name_count += 1
return old_name_count
end
end
Run Code Online (Sandbox Code Playgroud)
测试:
require_relative 'test_helper'
class ParticipantRepositoryTest < MiniTest::Unit::TestCase
def setup()
@repository = ParticipantRepository.instance
end
def test_retrieve_participant
participant = @repository.generate_participant
refute_nil participant
refute_nil participant.name
refute_equal("", participant.name)
assert_equal(0, participant.subordinates_count)
end
def test_employee_name_increment
participant1 = @repository.generate_participant
participant2 = @repository.generate_participant
refute_equal(participant1.name, participant2.name)
index_participant1 = /Employee([0-9]+)/.match(participant1.name)[1] …Run Code Online (Sandbox Code Playgroud) 我是一名 C# 开发人员,但目前正在研究 Java。在 C# 中,事件有两个参数:eventArgs - 关于事件本身的信息 - 和发送者,它是关于触发事件的对象的信息。
Java 的方法略有不同,每个事件处理程序都是一个类(嵌套与否)。由于代码整洁,我决定创建非嵌套类。发生的情况是我遇到了问题,因为我无法访问有关触发此事件的对象的某些信息,也无法访问类的某些元素(可能对计算有用的其他对象)。
我该如何解决这两个问题?
谢谢,奥斯卡
我正在用Android in Action学习android.其中一个例子是一个简单的应用程序,屏幕下方有这个菜单栏.我有这个代码来绘制菜单:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, ReviewCriteria.MENU_GET_REVIEWS, 0, R.string.menu_get_reviews).setIcon(android.R.drawable.ic_menu_more);
return true;
}
Run Code Online (Sandbox Code Playgroud)
但它没有被调用,因此菜单没有出现.我试图在它上面设置一个断点,但它并没有停止.我是否必须设置任何其他属性才能启用此活动中的菜单?
谢谢,奥斯卡
编辑:LogCat充满了有关模拟器启动的日志条目.这些是与我的应用程序部署/加载相关的
04-07 22:26:08.403: INFO/System.out(480): debugger has settled (1503)
04-07 22:26:16.404: WARN/InputManagerService(73): Got RemoteException sending setActive(false) notification to pid 447 uid 10034
04-07 22:26:16.933: INFO/ActivityManager(73): Displayed com.examples.RestaurantFinder/.ReviewCriteria: +16s325ms (total +16s431ms)
04-07 22:26:37.705: DEBUG/SntpClient(73): request time failed: java.net.SocketException: Address family not supported by protocol
04-07 22:30:24.473: ERROR/ThrottleService(73): Error reading data file
04-07 22:31:37.745: DEBUG/SntpClient(73): request time failed: java.net.SocketException: Address family not supported by …Run Code Online (Sandbox Code Playgroud) 我可以在C#中从一个单独的元素隐式创建一个数组吗?
例如,我有这种方法
public void MyMethod(string[] arrayString)
Run Code Online (Sandbox Code Playgroud)
在我的代码的某些时候,我有
string str = "myStr";
MyMethod(str)
Run Code Online (Sandbox Code Playgroud)
当然第二个linhe是一个错误,因为我传递一个字符串,而MyMethod期望一个字符串[].是否有任何干净的方式来调用MyMethod而不使用
MyMethod(new string[] {str})
Run Code Online (Sandbox Code Playgroud) 我正在构建一个爬虫,我正在使用aBot来完成它.这是一个非常好的系统:)在开发过程中,我发现了一个问题,与我想要构建爬虫的方式有关,而不是aBot项目本身,但我希望你能帮助我.
设置爬网程序时,我指定爬网完成时要调用的方法,有sync和async选项.
crawler.PageCrawlCompleted += crawler_ProcessPageCrawlCompleted;
crawler.PageCrawlCompletedAsync += crawler_ProcessPageCrawlCompleted;
Run Code Online (Sandbox Code Playgroud)
我想使用异步的,因为我会在处理旧的时抓取另一个URL.这工作正常,直到我抓取最后一个网址.当我抓取最后一个时,我调用completeAsync方法并且我的爬虫完成了工作,所以它完成并且程序关闭而没有完全处理_ProcessPageCrawlComplete方法,所以我不能保证最后的URL将被处理.
在关闭申请之前,我有什么方法可以等待最后一次活动结束吗?这是一个设计缺陷吗?
编辑:我忘了提及:我确实可以访问爬虫代码.我目前的解决方法是:如果链接是最后一个要处理的链接,请创建一个WaitHandle并等待它完成.听起来有点乱,但......