小编Mar*_*ira的帖子

如何使用spring的2个或更多数据库?

我有一个运行Spring MVC的应用程序.

我需要它来访问我的应用程序中的两个不同的数据库(一个是PostgreSQL,另一个是MySQL数据库).

如何仅使用注释或application.properties文件来配置它?

问候.

spring multiple-databases spring-boot

61
推荐指数
2
解决办法
8万
查看次数

如何知道哪个窗口有焦点以及如何更改它?

我想知道如何向X11询问哪些窗口有焦点.如果由于任何原因我自己的应用程序(可能是可见的或不可见)获得焦点,我希望能够让以前的窗口再次获得焦点.

例如,我的应用程序与许多其他应用程序一起运行(例如firefox,gvim,nautilus,...)

假设首先firefox具有焦点,并且用户点击我现在具有焦点的应用程序.我希望我的应用程序再次关注firefox.

有谁知道如何实现这一目标?书籍推荐非常好.

非常感谢.

x11

11
推荐指数
4
解决办法
1万
查看次数

perform_async在sidekiq中不起作用

我正在尝试使用sidekiq在后台处理一些请求(已与padrino框架集成)。

我的期望是,一旦调用了工作程序,请求处理程序就会立即将答案返回给用户。

为了确保它正常工作,我实现了一个工作程序,该工作程序会在处理完成之前打印一些消息并休眠约44秒钟(以模拟在后台进行长时间处理)。

令我惊讶的是,直到工人完成工作之前,该请求都被搁置了。只有在那之后,请求处理程序才能向用户返回答案。

起初,我以为睡眠功能可能是个问题,所以我忙了一段时间取代了睡眠功能,但是我的行为却是一样的:请求处理程序被挂起,直到工作人员完成任务为止。

知道为什么会这样吗?

您可以看到以下内容:

请求处理程序:

get :hardworker, map: '/hardworker' do
  logger.info "I'll call HardWorker"
  HardWorker.perform_async(44)
  logger.info "HardWorker was called"
  return "The job should still be running in background."
end
Run Code Online (Sandbox Code Playgroud)

Sidekiq工作人员:

class HardWorker
  include Sidekiq::Worker

  def perform(count)

    logger.info "Doing hard work"
    Sidekiq.redis { |c| logger.info "redis location: [#{c.client.location }]" }

    redis_info = Sidekiq.redis { |conn| conn.info }
    logger.info "connected clients: [#{redis_info['connected_clients']}]"

    sleep count

    logger.info "hard work was done"
  end
end
Run Code Online (Sandbox Code Playgroud)

Redis服务器正在运行:

ps -ef | grep redis
Run Code Online (Sandbox Code Playgroud)

退货

redis …
Run Code Online (Sandbox Code Playgroud)

ruby sidekiq

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

标签 统计

multiple-databases ×1

ruby ×1

sidekiq ×1

spring ×1

spring-boot ×1

x11 ×1