首页 \ 问答 \ 如何限制ScheduledExecutorService(How to restrict ScheduledExecutorService)

如何限制ScheduledExecutorService(How to restrict ScheduledExecutorService)

我有以下代码,每20分钟后调用一个任务并且工作正常。 现在,我希望它只能在0900到1800之间工作

ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleWithFixedDelay(new CSDelightAlertTask(), 0, 20, TimeUnit.MINUTES);

I have following code which call a task after every 20 min and its working fine. Now above this i want that it only work between 0900 to 1800

ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleWithFixedDelay(new CSDelightAlertTask(), 0, 20, TimeUnit.MINUTES);

原文:https://stackoverflow.com/questions/9435295
更新时间:2023-05-05 13:05

最满意答案

你真的应该规范你的数据,将标签存储在一个单独的表中,这样你就不必像这样做超复杂的逻辑。

同时,你的问题是布尔组。 并优先于OR,所以你的查询应该是

SELECT
    company.domain,
    company.company_name,
    CONCAT_WS(
        ',',
        company.business_sector,
        company.tags
    ) AS 'tags',
        GROUP_CONCAT(
            employee.employee_id SEPARATOR ','
        ) AS 'employee_ids',
        COUNT(employee.employee_id) AS 'employees'
FROM
    company
INNER JOIN employee ON company.domain = employee.domain
WHERE
    (company.tags REGEXP '^Retail| Retail |Retail$'
    OR company.business_sector LIKE '%Retail%')
AND company.tags NOT REGEXP '^Apparel| Apparel |Apparel$'
AND company.business_sector NOT LIKE '%Apparel%'
AND company.domain NOT IN (
    '@hotmail.com',
    '@gmail.com',
    '@aol.com'
)
GROUP BY
    company.domain

密切关注圆括号的位置。


I found something that works perfect for now, I'm using a MATCH AGAINST full-text search method:

SELECT
    company.domain,
    company.company_name,
    CONCAT_WS(
        ',',
        company.business_sector,
        company.tags
    ) AS 'tags',
    GROUP_CONCAT(
        employee.employee_id SEPARATOR ','
    ) AS 'employee_ids',
    COUNT(employee.employee_id) AS 'employees',
    COUNT(ct_connections.id) AS 'already_connected'
FROM
    company
INNER JOIN employee ON company.domain = employee.domain
LEFT JOIN ct_connections ON employee.email = ct_connections.email
AND ct_connections.client_id = 1
WHERE
    (
        MATCH (company.tags) AGAINST ('Retail')
        OR company.business_sector LIKE '%Retail%'
    )
AND (
    NOT MATCH (company.tags) AGAINST ('Apparel')
    AND company.business_sector NOT LIKE '%Apparel%'
    AND NOT MATCH (company.tags) AGAINST ('Footwear')
    AND company.business_sector NOT LIKE '%Footwear%'
)
AND company.domain NOT IN (
    '@hotmail.com',
    '@gmail.com',
    '@aol.com'
)
GROUP BY
    company.domain

相关问答

更多
  • 一些想法: 如果您正在执行并发异步请求并正在使用异步NSURLConnection ,那么您需要为此下载操作定义自己的类,以确保每个连接都跟踪其自己的属性。 这样,所有的东西都可以被封装在这个类中,在那里产生的下载对象可以跟踪下载的内容,解析的内容等等。如果你没有使用异步的NSURLConnection (例如你只是使用dataWithContentsOfURL ),它更容易,尽管你失去了NSURLConnection提供的一些进度更新和/或流式机会。 为了获得最佳性能,您应该执行并发请求。 话虽如此,你不 ...
  • 看起来当您获取所选行索引时,在获取数据之前不会将其转换为模型索引。 而不是这个: table.getSelectedRow() 用这个: table.convertRowIndexToModel(table.getSelectedRow()); Looks like when you are getting the selected row index you are not converting it to the model index before you grab the data. Inste ...
  • 当a是一个列表时, a * 2创建一个新的列表实例。 如果你两次调用a * 2 ,你创建了两个新的列表实例 - 这就是为什么b is a * 2产生False 。 你对b is a[2] * 2得到True的原因b is a[2] * 2是缓存小整数的CPython的优化。 由于整数在Python中是不可变的,所以如果你得到一个新的实例或缓存的,实际上并不重要;对于小整数,如果你再次使用同一个整数,Python会返回一个缓存版本。 也试试 >>> a = [1, 2, 300, 4] >>> b = a[2 ...
  • 由于Encoding属性返回UTF-16编码,因此您的编写器会将其写出来。 而不是使用StringWriter (在内存中是UTF-16),您可以初始化一个XmlTextWriter实例,以使用带有MemoryStream UTF-8作为后备存储。 编辑:解决此问题的另一种方法是从StringWriter继承并重写Encoding属性以返回您喜欢的编码(例如UTF8在您的情况下)。 这个想法来自Robert McLaws写的博客文章 。 public class UTF8StringWriter: Stri ...
  • 我不明白ti.f_ticketitem_share_qty如何适应事物所以我刚刚添加了一些聚合,以便该组按预期工作。 另请注意,您提供的数据不包括2个客户在同一订单上订购相同内容的情况,因此我添加了数据,以便分组显示相关内容。 declare @Ticket table (i_ticket_id int) insert into @Ticket values(3) declare @TicketItem table (i_ticket_item_id int, i_ticket_id int, i_m ...
  • 不知道这是否是您要查找的内容,但如果您更改XmlParser以在构造函数中使用U_StateArray ,则可以使语法接近原始语法。 //Changed constructor in XmlParser XmlParser (U_StateArray states) : m_states{states} {} //Used like this XmlParser<2> test {{ XmlState(XmlState::U_StateFunc(), XmlState::U_State ...
  • 默认情况下, JFrame永远不会对AlwaysOnTop或toFront正确做出反应,不是主要顶级容器的主要功能(没有图标化和取消消除,但随后在屏幕上闪烁) 你必须使用JDialog来完成这项工作, 为父母和模态 设置 (如果需要的话) JFrame by default never react to AlwaysOnTop or toFront correctly, isn't main functionality for primary Top-Level Container (without ico ...
  • 没有什么特别的你想要建立的路线。 如果没有描述你的路线/派送究竟如何突破,很难确定你可能遇到的任何深奥的路由行为(并相信我,有一些)。 在详细说明之前,我会强烈建议您始终使用反向路由来构建您的URL(例如, $html->url(array('controller'=>'homes','action'=>'index'));而不是$html->url('/homes/index') 。这是一个很小的性能打击,最终可以让你免于一些头痛的问题。 让我们来看看您的示例路线,然后尝试解释如何在视图中构建匹配的网址, ...
  • 你构建三元组的方式是不正确的。 由于您的方法试图确保不重复任何操作,因此当==为真时它应该返回true。 三元本身旨在返回一个值,而不是真正在其结果中执行类似(return false)的表达式。 这是有效的 ,但实际上不存在是非常规的。 三元应该看起来像 return year.length == string.length ? true : false 这当然可以简化,因为==表达式已经返回一个布尔值。 return year.length == string.length 接下来,你对year[i ...
  • 首先,你应该在foreach循环中链接所有调用: val futures = sensorPositionParameters.deviceMacAddress.map (deviceMacAddress=> for( sensorHubs <- SensorHubRepository.sensorHubsFromDeviceMacAddress(deviceMacAddress); processedSensorHubs <- processSensorHubs(sensorHub ...

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)