- Run
$ createdb uniq-db-testto create DB - Run example with Ruby (e.g.,
$ ruby 1_find_or_create_by_single_thread.rb)
With many successful INSERTs
Warming up --------------------------------------
| # lib/sidekiq/memory_sampling_middleware.rb | |
| # frozen_string_literal: true | |
| class Sidekiq::MemorySamplingMiddleware | |
| attr_accessor :logger | |
| def initialize(options = { logger: Sidekiq::Logging.logger }) | |
| self.logger = options.fetch(:logger) { raise 'Missing logger parameter in options' } | |
| end | |
| CLASS_KEY = 'class' |
| # Put this function to your .bashrc file. | |
| # Usage: mv oldfilename | |
| # If you call mv without the second parameter it will prompt you to edit the filename on command line. | |
| # Original mv is called when it's called with more than one argument. | |
| # It's useful when you want to change just a few letters in a long name. | |
| # | |
| # Also see: | |
| # - imv from renameutils | |
| # - Ctrl-W Ctrl-Y Ctrl-Y (cut last word, paste, paste) |
| module Api | |
| module V2 | |
| module ApiHelper | |
| ## Общий метод генерации ключей для кэша redis | |
| def self.redis_key(params) | |
| params[:locale] = I18n.locale | |
| params_keys = params.keys.map(&:to_s).sort.map(&:to_sym) | |
| ['.', params_keys.map { |key| "#{key}:#{params[key]}" }.join('&'), '.'].join | |
| end | |
| end |
| class CategoriesController < ApplicationController | |
| def fields | |
| render json: Field.where(category_id: params[:id]).order(:id) | |
| end | |
| end |
| http://stackoverflow.com/questions/22667401/postgres-json-data-type-rails-query | |
| http://stackoverflow.com/questions/40702813/query-on-postgres-json-array-field-in-rails | |
| #payload: [{"kind"=>"person"}] | |
| Segment.where("payload @> ?", [{kind: "person"}].to_json) | |
| #data: {"interest"=>["music", "movies", "programming"]} | |
| Segment.where("data @> ?", {"interest": ["music", "movies", "programming"]}.to_json) | |
| Segment.where("data #>> '{interest, 1}' = 'movies' ") | |
| Segment.where("jsonb_array_length(data->'interest') > 1") |
| class Advert::UpsertVehicle | |
| def self.call(vehicle) | |
| @vehicle = vehicle | |
| @outdoria = OutdoriaAPIService.new(vehicle.retailer.api_key) | |
| return unless @request_body = VehicleData::ToRequestBody.(vehicle) | |
| @vehicle_code = vehicle.custom_id | |
| if @outdoria.advert_exists?(@vehicle_code) | |
| self.update_advert | |
| else |
| Set on viewDidLoad() | |
| self.tableView.backgroundColor = UIColor(patternImage: UIImage(named: "empty-cell.png")!) | |
| Where ever you call your table reload after API call add this line: | |
| self.tableView.backgroundColor = UIColor.whiteColor() | |
| Here is the empty cell image used as a background pattern I made: | |
| http://s3.postimg.org/895ohr0c3/empty_cell.png |