oshai
12/06/2017, 10:50 PMprivate val actor = actor<List<CampaignStatusData>>(
newFixedThreadPoolContext(nThreads = 1, name = "CampaignsStatusReporter")) {
val campaignsToUpdate = mutableListOf<CampaignStatusData>()
for (msg in channel) {
campaignsToUpdate.addAll(msg)
if (campaignsToUpdate.size > 1000) {
updateStatus(campaignsToUpdate)
campaignsToUpdate.clear()
}
}
}
override fun updateStatusInBulks(campaigns: List<CampaignStatusData>) {
actor.
offer(campaigns).
orElse {
throw IllegalStateException("failed to offer to actor")
}
}