diff --git a/synapse/storage/event_push_actions.py b/synapse/storage/event_push_actions.py
index 6b7cebc9cef25b822c5923430ff040f584e4316a..aa61cf55691b1adbbed89f59488aab15a3350e13 100644
--- a/synapse/storage/event_push_actions.py
+++ b/synapse/storage/event_push_actions.py
@@ -15,6 +15,7 @@
 
 from ._base import SQLBaseStore
 from twisted.internet import defer
+from synapse.util.caches.descriptors import cachedInlineCallbacks
 
 import logging
 import ujson as json
@@ -46,7 +47,7 @@ class EventPushActionsStore(SQLBaseStore):
             values
         )
 
-    @defer.inlineCallbacks
+    @cachedInlineCallbacks(num_args=3)
     def get_unread_event_push_actions_by_room_for_user(
             self, room_id, user_id, last_read_event_id
     ):