title: How do I initialize an Ember service at app boot without type injection?
body: <p>Perhaps this is a little esoteric but I need some help.</p>
  
  <p>My use case is a clock ticker. I want a service that upon <code>init()</code> will start a timer. (for example an AJAX polling service). I want this to start at app boot but I don't wish to inject it into every object type.</p>
  
  <p>What I've tried:</p>
  
  <ol>
  <li>Writing a service and using <code>Ember.inject.service()</code> in the application controller.</li>
  <li>Use an initializer with <code>app.register(…, MyService.create(), {instantiate: false})</code> without calling <code>app.inject(…)</code>.</li>
  <li>Don't start the timer in the <code>init()</code> instead <code>Ember.inject.service()</code> it into the application route/controller and in its <code>init()</code> call <code>this.get('myService').startTimer()</code>.</li>
  </ol>
  
  <p>Here are some of the stumbling blocks I've run into:</p>
  
  <ol>
  <li>Services are lazy loaded and so the timer never starts because the application controller never performed a <code>this.get('myService')</code>. I could do that in the controller's <code>init()</code> but that felt like a <em>code smell</em>.</li>
  <li>Seems that the ember resolver will see the <code>services/my-service.js</code> file and auto register it. Performing an <code>app.register()</code> seems to register <em>two</em> instances and the two get confused.</li>
  <li>Like getting the lazy service in the application controller's <code>init()</code> this solution also felt like a <em>code smell</em>. But of all the solutions I've tried this works and is the least smelly of the three.</li>
  </ol>
  
  <p>Is there any other alternatives?</p>