title: What is the difference between timers.startSingleTimer and scheduler.scheduleOnce in Akka Actor?
body: <p>I am designing an actor that should schedule sending a message to itself.</p>
  
  <p>I notice that there are at least two ways to do it.</p>
  
  <p>I would like to understand the difference to choose the right one.</p>
  
  <p><strong>The first is one method of akka.actor.Timers:</strong></p>
  
  <pre><code>def startSingleTimer(key: Any, msg: Any, timeout: FiniteDuration): Unit
  </code></pre>
  
  <p><strong>The second is the pretty common way with scheduler of actor context system:</strong></p>
  
  <pre><code>final def scheduleOnce(
      delay:    FiniteDuration,
      receiver: ActorRef,
      message:  Any)(implicit executor: ExecutionContext,
                              sender: ActorRef = Actor.noSender): Cancellable
  </code></pre>
  
  <p><strong>Question:</strong></p>
  
  <ul>
  <li>Which is the main difference between them in case of scheduling a
  message to itself?</li>
  <li>Is it a good idea to pass actor context to <code>scheduleOnce</code> method?</li>
  </ul>