Energy storage plays an essential role in enabling greater uptake of renewable generation. In many applications, energy storage must be used for multiple (sometimes competing) purposes in order to provide the maximum possible economic return. A common approach is to find an optimal sequence of charge and discharge rates for a set of discrete time intervals across the horizon of interest. However, calculating optimal solutions at a high temporal resolution can be computationally expensive. In addition, conditions can change instantly as renewable generation fluctuates and loads are switched on and off. What is needed, therefore, is an approach that can both track some long-term optimal trajectory, while still responding to changing conditions in real-time. In this work, we propose two approaches that aim to achieve this. In the first, we calculate a discrete optimal solution, but then convert this into a schedule for simple rule-based controllers that can respond to changes continuously. In the second, we use historical optimal solutions and rule-based schedules to train a neural network that generates a similar schedule. We find that both approaches offer significant advantages over standard discrete optimal solutions: they provide a similar amount of value (and in some cases more), while being 30x less computationally expensive to compute.