This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def handle_call(:get_history, _from, worker) do | |
sortedLog = Enum.sort_by(worker.eventLog, fn event -> {event.time, event.origin} end) | |
{:reply, sortedLog, worker} | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def handle_info({:replication_log, logEntry}, worker) do | |
newWorkerState = | |
if logEntry.origin == worker.name do | |
worker | |
else | |
%{ worker | | |
clock: max(worker.clock, logEntry.time) + 1, | |
eventLog: [logEntry | worker.eventLog] } | |
end | |
{:noreply, newWorkerState } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def handle_call({:add, event}, _from, worker) do | |
logEntry = %LogEntry{ | |
origin: worker.name, | |
time: worker.clock, | |
event: event | |
} | |
newWorkerState = %{ worker | | |
clock: worker.clock + 1, | |
eventLog: [logEntry | worker.eventLog] | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private void pollSweeperTable(Session session) { | |
List<Message> unsentMessages = messageRepository.fetchUnsentMessages(); | |
for (Message message : unsentMessages) | |
sendMessage(session, message); | |
messageRepository.markSent(unsentMessages); // One DB transaction | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Modifying | |
@Query( | |
value = "update SweeperTable set sent = 1 where messageId in (:messageIds)", | |
nativeQuery = true) | |
void markSent(@Param("messageIds") List<Long> messageIds); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
try { | |
pollSweeperTable(Session session); | |
// ... | |
} catch (Exception e) { | |
// Log the exception | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private void pollSweeperTable(Session session) { | |
List<Message> unsentMessages = messageRepository.fetchUnsentMessages(); | |
for (Message message : unsentMessages) | |
sendMessage(session, message); | |
messageRepository.markSent(unsentMessages); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
testCombination = do -- a new computation in our DSL in which we: | |
p1 <- suggestedPostsFor 1 -- * compute the suggested posts for user 1 | |
p1' <- suggestedPostsFor 1 -- * compute the suggested posts for user 1 (again) | |
p2 <- suggestedPostsFor 2 -- * compute the suggested posts for user 2 | |
return (p1, p1', p2) -- * return a tuple with the result of these computations |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
template<typename Iterator> | |
struct IteratorTraits {}; | |
template<> | |
struct IteratorTraits<LinkedListIterator> | |
{ | |
using iterator_category = std::bidirectional_iterator_tag; | |
}; | |
template<> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
AdditionalTag<RandomAccessIterator<Iterator>> | |
RandomAccessIterator<AdditionalTag<Iterator>> |