小编JSB*_*ach的帖子

批处理是在 JavaEE Batch 中实现 ETL 步骤的正确方法吗?

我正在研究 Javaee Batch API (jsr-352),以测试使用此技术为我们自己的解决方案更改当前 ETL 工具的可行性。

我的目标是建立一份工作,在其中我:

  • 从步骤 1 中的数据源获取一些(虚拟)数据,
  • 来自步骤 2 中其他数据源的一些其他数据和
  • 在 step3 中合并它们。

我想处理每个项目而不是写入文件,而是将其发送到下一步。并且还存储信息以供进一步使用。我可以使用 batchlets 和jobContext.setTransientUserData().

我想我没有理解正确的概念:据我所知,JSR-352 适用于这种 ETL 任务,但它有两种类型的步骤:块和批处理。块是“三阶段步骤”,其中读取、处理和写入数据。Batchlets 是不是对数据上的每个项目都执行的任务,而是一次(如计算总数、发送电子邮件等)。

我的问题是,如果我考虑批次的定义,我的解决方案是不正确的。

如何使用 Javaee Batch API 实现这种 kinf od 作业?

java java-ee-7 java-batch jakarta-ee

3
推荐指数
1
解决办法
1136
查看次数

在RedShift中有没有替代Vertica的conditional_true_event?

Vertica有一个非常好的操作类型:基于事件的窗口操作,它基本上可以让您识别事件发生的时间.例如,每当给定的布尔表达式解析为true时,conditional_true_event将递增计数器.我们大量使用这种方法.

我们正在考虑迁移到RedShift,但我们需要一个类似的功能.RedShift有一些不错的窗口功能,但我找不到这个.

有没有办法可以使用RedShift模拟这个功能?

vertica amazon-redshift

3
推荐指数
1
解决办法
745
查看次数

C#:有没有办法使用lambda表达式设置集合中对象的属性?

我正在开发一个小项目,我想我可以尝试一些我不知道的东西,这样我就可以学到新东西.我有一组消息,叫做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)

非常感谢,奥斯卡

.net c# lambda

2
推荐指数
2
解决办法
1457
查看次数

我如何测试(TDD)单例类?

我在使用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)

ruby tdd minitest

2
推荐指数
1
解决办法
575
查看次数

Java 事件 - 如何向其发送额外信息?

我是一名 C# 开发人员,但目前正在研究 Java。在 C# 中,事件有两个参数:eventArgs - 关于事件本身的信息 - 和发送者,它是关于触发事件的对象的信息。

Java 的方法略有不同,每个事件处理程序都是一个类(嵌套与否)。由于代码整洁,我决定创建非嵌套类。发生的情况是我遇到了问题,因为我无法访问有关触发此事件的对象的某些信息,也无法访问类的某些元素(可能对计算有用的其他对象)。

我该如何解决这两个问题?

谢谢,奥斯卡

java events

1
推荐指数
1
解决办法
1401
查看次数

我的活动中的菜单没有显示,因为我的onCreateOptionsMenu没有被调用

我正在用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)

android

1
推荐指数
1
解决办法
7627
查看次数

隐式将对象强制转换为包含一个元素的数组.可能吗?

我可以在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)

c# c#-4.0

1
推荐指数
1
解决办法
110
查看次数

如何在关闭应用程序之前等待异步事件完成?

我正在构建一个爬虫,我正在使用aBot来完成它.这是一个非常好的系统:)在开发过程中,我发现了一个问题,与我想要构建爬虫的方式有关,而不是aBot项目本身,但我希望你能帮助我.

设置爬网程序时,我指定爬网完成时要调用的方法,有sync和async选项.

        crawler.PageCrawlCompleted += crawler_ProcessPageCrawlCompleted;
        crawler.PageCrawlCompletedAsync += crawler_ProcessPageCrawlCompleted;
Run Code Online (Sandbox Code Playgroud)

我想使用异步的,因为我会在处理旧的时抓取另一个URL.这工作正常,直到我抓取最后一个网址.当我抓取最后一个时,我调用completeAsync方法并且我的爬虫完成了工作,所以它完成并且程序关闭而没有完全处理_ProcessPageCrawlComplete方法,所以我不能保证最后的URL将被处理.

在关闭申请之前,我有什么方法可以等待最后一次活动结束吗?这是一个设计缺陷吗?

编辑:我忘了提及:我确实可以访问爬虫代码.我目前的解决方法是:如果链接是最后一个要处理的链接,请创建一个WaitHandle并等待它完成.听起来有点乱,但......

c#

1
推荐指数
1
解决办法
754
查看次数