Manually trigger a post_updated webhook in Discourse - discourse

I’m looking to make a change to the raw data for a bunch of my Discourse posts in a rake task and then re-cook the result.
When this happens I also want to trigger the webhook for post_updated
What’s the best practice way to achieve this?

This has been answered in another forum, thanks to Guo Xiang Tan for the answer.
From your rails console, you can run WebHook.enqueue_post_hooks(:post_edited, post). Make sure Sidekiq is running though.

Related

How to use sidekiq with rails app to generate daily report?

I have built a rails app for storing events. I want to generate a report to find the number of events happened in a day. I want to do it asynchronously. I am new to sidekiq and Redis. Can anyone suggest a good resource to study?
My suggestion for this would be to do this in a rake task that would be run on the server once a day.
You can find good resources on how to create rake tasks online and then use this simple gem to make sure the rake task runs once a day on the server.
https://github.com/javan/whenever
I am assuming you have a Profile model. You could use the timestamps in this model created_at to get all the profiles created on a given day. You could then create a CSV or whatever you like with that data and email it to whoever needs the report (how you handle the data is up to you)
You can do all the above in Sidekiq if you wish, I would recommend reading through the gem docs and this getting started guide from the official wiki https://github.com/mperham/sidekiq/wiki/Getting-Started
It's fairly straightforward and once you get your first process working it will start to make more sense.
I would also highly reccomend this video before you start working with sidekiq and redis, to give you an overall background of how sidekiq works and in what use cases it may be helpful to you.
https://www.youtube.com/watch?v=GBEDvF1_8B8

(Ruby on Rails) Which Gem to Automatically Generate A New "Blog Post" Every Day?

I'm making a blog application and want my application to automatically generate a new blog post every day, starting from a user-defined start date. I've heard of a few gems like Clockwork, Whenever, Rufus-Scheduler and I'm not sure which is the best to do this, or if any of them even can.
Has anyone had experience with using any of these gems for something like this? I'm feeling very confused at the moment.
Thanks!
I can't think of any gem as such that will generate/create a post for your user. You have to write your own script for creating posts and the scheduler/or other gems you mentioned above will just help you run that script in the form of rake task at regular intervals of your choice.

opposite action to Sidekiq::ScheduledSet.new.clear

This is a very straight and simple question:
Is there any way to populate o re create the ScheduledSet jobs? I mean something opposite to Sidekiq::ScheduledSet.new.clear ?
Or, can I run average_scheduled_poll_interval from the rails console?
After a while, I found something similar to what I was looking for: basically, what I wanted is that the workers to reload the changes in the source code, and found this answer in the FAQ page.
It needs an extra gem, but it does the job.

Solutions for cron jobs in rails3

I'm trying to log some data daily, automatically in my rails app. I was wonder if anyone knows a good solution for this? I found https://github.com/javan/whenever, but I wanted to make sure I knew of all the options before I chose.
Thanks!
Elliot
I really like whenever - it's a great Gem and I have used it in production.
There is also a good Railscasts episode about it:
http://railscasts.com/episodes/164-cron-in-ruby

Is there a bulk email plugin for Rails apps?

Does anyone know of a plugin or something that can be used to send bulk emails for a Rails app?
Specifically, I'd like to be able to pass an HTML email file to a rake task or something and have it emailed out to everyone who has signed up to my site and checked the "please send me info about XXX" box.
I wrote kind of a hacked-together version for myself, but I'd like something that throttles itself somewhat smartly and can pick up where it left off if interrupted.
Update: I eventually broke down and got out my credit card and signed up for a real bulk email service, and damn was that the right choice. The resulting emails are very professional, they have built-in analytics, also integrate with Google Analytics, and it's awesome for a ton of other reasons.
If you're looking to do bulk emails with Rails, I would suggest using the Mailchimp service (here's my affiliate link that has a bonus on signup) along with the hominid gem. This will allow you to sync all your user emails from your database to Mailchimp, then use a real bulk service instead of some crappy patched together one.
Another Update: I heard about Maktoub today, and it's pretty much exactly what I was describing. Disclaimer: I have never used it and would still probably steer clear and go with a paid service, but it's still probably better than rolling you own.
I couldn't find one so I wrote it myself. It's not pretty (at this stage), but should serve as a good starting point for anyone with similar needs.
Please send me a pull request if you make any beneficial changes and I'll make sure to give you credit.
Mailcar - Ruby on Rails mass / bulk email plugin
Update - I highly recommend using a service. Rolling your own is a real pain and it will be difficult to manage once your list becomes reasonably large at all.
I don't know that this is the kind of thing that can be covered by a plugin as there are whole sites/applications dedicated to this kind of thing. If you wanted to use one of those then there is www.campaignmonitor.com, it's pretty good and it has an api that you can hook into from your application.
You might want to take a look at postageapp.com
Not aware of any plugins for this and I don't know how rake could be used to do this, if at all.
Since you're using Rails, I assume you're using MySQL as your database so this may not be useful to you, but SQL Answers Mail for SQL Server sends bulk email directly from SQL Server. You could try searching for a tool that does something similar for the database you're using.
There's also a tutorial here and here on creating your own mailer.
use ActionMailer(tutorial) (docs), it comes with Rails and you should be able to rig it to run from a rake task.
There's a relatively new project called Maktoub which claims to be a Rails engine for email newsletters. I haven't tried it yet, but it looks promising.

Resources